一、引言

1、python的起源

人生苦短,我用python。——吉多(Guido,也被中国程序员音译为“龟叔”)
1989年,吉多决定开发一个新的解释程序,作为ABC语言(非开放,过于封闭)的继承。1991年,第一个python解释器诞生,是用C语言实现的,能够调用C语言的库文件。python是蟒蛇,因为吉多喜欢的电视剧名字里有python这个单词。
更多背景知识了解,点这里

2、解释器

计算机不能直接理解任何除机器语言以外的语言,将其他语言翻译成机器语言的工具称为 解释器 。解释器有两种翻译:编译、解释。两种方式之间的区别在于翻译时间点的不同。当编译器以解释方式运行的时候,也称之为解释器。
使用编译器编译的语言称为编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成机器语言的文件,运行时不需要重新编译,直接使用编译的结果就行。程序执行效率高,依赖编译器,跨平台性差些。如C、C++。
使用解释器解释的语言称为解释型语言:解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句句直接运行。在发布程序时,看起来省了道编译工作,但是在运行程序的时候,必须先解释再运行。如python,翻译一句执行一句,因此即使程序后半部分有错,但不影响前半部分程序的执行。

速度:编译型语言比解释型语言执行速度快。所以python运行速度稍微慢一点。
跨平台性:解释型语言比编译型语言跨平台性好,只需要安装相应的解释器就可以执行。如果想要在对应操作系统上运行程序,必须安装对应操作系统的解释器。操作系统负责与硬件打交道。

在这里插入图片描述

3、python的设计目标

特点:

一门简单直观强大的语言;
开源,任何人都可以为python的提升做贡献;
代码像纯英语那样容易理解;
适用于短期开发的日常任务

设计哲学:

优雅
明确
简单

只用一种方法来做一件事。
如果面临多种选择,python开发者一般会拒绝花俏的语法,而选择明确、没有或者很少有歧义的语法。
吉多是仁慈的独裁者。

为什么要用python:

代码量少

4、python的特点

①python是完全面向对象的语言

函数、模块、数字、字符串都是对象,在python中一切皆对象;
完全支持继承、重载、多重继承;
支持重载运算符,也支持泛型设计

②python拥有一个强大的标准库,python语言的核心只包含 数字、字符串、列表、字典、文件 等常见类型和函数,而由python标准库提供了 系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理 等额外功能。
③python社区提供了大量的第三方模块,使用方式与标准库类似。他们的功能覆盖 科学计算、人工智能、机器学习、Web开发、数据库接口、图形系统多个领域。

面向对象的思维方式:

面向对象是一种 思维方式 ,也是一门 程序设计技术
解决一个问题前,首先考虑 由谁 来做,怎么做。对象 就是
要解决复杂的问题,就可以找多个不同的对象,各司其职,共同实现,最终完成需求。

二、python

1、了解BUG

python源程序是特殊格式的文本文件,可以使用 任意文本编辑软件 做python开发。python程序的 文件扩展名通常是 .py

print("输出内容")

程序开发中的错误(BUG):

1、手误

例:
代码 :pirnt(“a”)
报错 :NameError:name ‘pirnt’ is not defind。引号’‘中的名字写错了。
注意:拼写要对

2、对已经学习过的知识理解还存在不足

例:
代码 :print(“a”)print(“b”)
报错 :SyntaxError:invalid syntax(语法错误)
注意:每行代码只完成一个动作

3、对语言还有需要学习和提升的内容

例:
代码
print(“a”)
(空格)print(“b”)
报错 :IndentationError:unexpected indent(出现了不期望看到的字符)
注意:注意缩进,每行代码都顶格写,代码要整齐
例:
代码:XiaoMing>5
报错:TypeError: str>int类型错误
注意:不同类型之间注意转化

学习语言时,不仅要学会语言的语法,而且还要学会如何认识错误和解决错误。每个程序员都是在不断地修改错误中成长的。

2、python的三种运行方式

①解释器python/python3

python 2.x解释器默认不支持中文;
python 3.x解释器默认支持中文(python3.0 2008年出现)。python3.6发布于2016年。

②交互式——ipython3

直接在终端中运行解释器
缺点:适合于学习小的代码。代码不能保存,不适合运行太大的程序
退出解释器:crtl dexit

IPython3 是一个python的交互式shell,支持自动补全、自动缩进
在终端输入IPython3然后回车,就可以在交互式环境中执行代码了。

③集成开发环境(IDE)——pycharm

IDE, Integrated Development Environment

支持代码补全、自动缩进;
内置有编译器 / 解释器;
调试器(断点 / 单步执行)

一个项目通常会包含很多源文件;
每个源文件的代码行数是有限的,通常在几百行之内;
每个源文件各司其职,共同完成复杂的任务。

Pycharm

右上角工具栏可以 执行(shift+F10) / 调试(shift+F9) 代码:绿色的三角号表示运行全部代码,
在这里插入图片描述
点击绿色的虫子添加红色断点,点击下方的console,按“向下的箭头”,一行一行执行代码。
在这里插入图片描述

控制台可以输出程序执行内容;跟踪调试代码的执行。

恢复pycharm的初始设置
①关闭正在运行的pycharm;
②pycharm的配置信息是保存在 用户家目录下 的.pycharmxxx.x目录下的,其中xxx.x表示当前使用的pycharm版本号。在终端中执行以下终端命令(具体版本号根据自己电脑pycharm的版本而定),删除pycharm的配置信息目录。
$ rm -r ~/ .pycharm2016.3

为一个项目建立一个独立专属目录
项目命名 规则:如01_python基础
文件名命名 只能使用小写字母、数字、下划线。不能以数字开始。

第一次建立一个项目,编写完程序后发现,pycharm右上角的工具栏是灰色的。此时应该在 项目文件处 鼠标右键,点Run,如下图:
在这里插入图片描述
然后就可以看到右上角的工具栏变绿了,可以使用了。

设置pycharm显示的字体大小
FilesettingEditorFont
将字体改为“对话框输入”,字号设为24(自定义)。在这里插入图片描述

更改解释器Filesetting→找到自己的项目Project,选择python解释器python Interpreter,如果不是3.x,可以下拉菜单修改解释器。

多文件项目:同一个项目中有多个.py程序。当选中对应.py程序时,鼠标右键run,就可以运行当前程序。如何同时执行这些.py文件?

关闭其他程序:close other
在这里插入图片描述

3、注释

print("a")  # 单行注释
# 注意,python希望代码格式整齐。单行注释的 “#” 前应距离代码两个空格, “#” 后距离注释文字 一个空格。
# 注释下面的灰色虚线表示“格式不规范”。
# 可以在程序前的小灯泡处点击"ReFormat File"直接一键规范格式。


'''
多行注释(块注释)
注意:
注释不是越多越好,对于一目了然的代码,不需要添加注释;
对于不是一目了然的代码,应该在行尾添加注释;
对于复杂的操作,应该在操作开始前写上若干行注释;
绝对不要描述代码,不要说“是什么”,应该更多地说“为什么”。假设阅读代码的人很懂python。
'''

4、算术运算符

在这里插入图片描述

三、一些知识

1、计算机中的三大件

计算机中包含很多硬件,但与程序执行相关的三个核心硬件分别为:

①CPU

中央处理器,是一块超大规模(规模大,但体积小)的集成电路。
负责干活:处理数据 / 计算,负责执行程序。

②内存

内存条有很多小芯片。

临时存储数据(断电之后(如,关机)数据会自动消失);
速度快;
空间小;(常见的内存条通常只有4G / 8G / 16G / 32G)
价格高

③硬盘

通过磁头的挪动,…

永久存储数据;(程序是安装在硬盘中的)
速度慢;
空间大;(以T为单位)
价格便宜

2、程序的执行原理

CPU ←→ 内存执行的程序 ←→ 硬盘没有执行的程序

1、程序运行之前,是保存在 硬盘 中的
2、当要运行一个程序时,操作系统首先会让CPU把程序复制到 内存 中去,CPU执行 内存中的程序代码(0101机器语言)

3、python程序的执行原理

CPU ←→ 内存python解释器 ←→ 硬盘python程序

1、操作系统首先会让CPU把程序复制到 内存 中去;
2、python解释器 根据语法规则,从上向下让CPU翻译python程序中的代码
3、CPU负责执行翻译完成的代码(0101机器语言)。

可以用which查看python解释器所在位置:which python

4、程序的作用

例:QQ程序的启动过程

QQ运行之前是保存在硬盘中的;运行之后,QQ程序就会被加载到内存中了。
QQ在把号码和密码发送给服务器之前,需要先把号码和密码 存储内存 中,并使用一个别名标记号码和密码。
在程序内部,为QQ号码和QQ密码在内存中分配的空间叫做变量

程序是用来处理数据的,而变量是用来存储数据的。

四、变量的基本使用

1、变量的定义

变量命名 需要有见名知意的效果,不能以数字开头,名字只能包含字母、数字、下划线,不能与关键字重名。

关键字 是python中已经使用的标识符。

python中标识符是区分大小写的。如果有多个单词,则:

方法一(首选):字母与字母之间用_连接。如first_name
方法二:小驼峰命名法,第一个单词以小写字母开始,后续单词首字母大写。如firstName
方法三:大驼峰命名法,每一个单词首字母都大写。FirstName

在python中,每个变量在使用前都必须赋值,变量赋值以后,该变量才会被创建。=用来给变量赋值:变量名 = 存储在变量中的值。为了保证代码格式,=左右应该各保留一个空格。

  >>>`tel = 12345678`
  >>>`tel`
  OUT:'12345678'

#如果希望通过 解释器 的方式执行程序,输出变量的内容,需要使用print函数;
#如果使用 交互式 执行程序,输出变量内容,只需要通过 变量名 就可以

price = 8.5
weight = 7.5
money = price * weight
print(money)

变量名只有第一次出现,才是定义变量;
变量名再次出现,不是定义变量,而是直接使用之前定义过的变量;
在程序开发中,可以修改之前定义的变量中保存的值

2、变量的类型

变量的名称、变量保存的数据、变量存储数据的类型、变量的地址。
python可以根据=右侧的值,自动推导出变量中存储数据的类型。

(1)数字型变量

整型int(python3.x不用区分int和long int)
浮点型float
布尔型bool:True(1) / False(0)
复数型complex:用于科学计算,如:平面场问题、波动问题、电感电容问题

(2)非数字型变量

字符串
列表
元组
字典
#列表、元祖、字典相关内容见python | 基础学习(二)中“九、非数字型变量具体介绍 ”

在python中,所有非数字型变量都支持以下特点:

都是一个序列 sequence,也可以理解为容器
取值[]
遍历for in
计算长度、最大 / 最小值、比较、删除
拼接+和重复*
切片

使用type(x)可以查看变量类型。

例如name = Yiliatype(name)
输出为str

应用

name = "XiaoMing"  # 字符串加""
age = 18
gender = False  # bool值,False为boy,True为girl
height = 175
weight = 75

①利用pycharm单步调试(右上角绿色的虫子)确认变量中保存数据的类型。
②python可以根据=右侧的值,自动推导出变量中存储数据的类型。
③当代码调试完成后,变量区的变量就会被自动释放。
在这里插入图片描述
当程序调试到一处,后续程序不想继续调试了,可以点下面这个“绿色三角形”,一次性执行完调试处后续的代码。也可以点击“红色正方形”终止调试。这样之后就可以在之前的执行环境中继续调试,不用开启新的环境进行调试。
在这里插入图片描述

3、不同类型变量之间的计算

int + float = float:

a = 5
b = 5.5
print(a + b)  # 输出为:10.5

字符串拼接+

first_name = "林"
last_name = "黛玉"
print(first_name + last_name)  # 输出为:林黛玉 

*运算符也可以用于字符串重复次数的计算,如:

"-" * 10的输出结果为’----------';
"光亮" * 3的输出结果为’光亮光亮光亮‘。

两个字符串之间不能直接用*,应先完成类型转换。

price = input(“请输入单价:”)
number = input(“请输入数量:”)
money = float(price) * float(number)
print(money)
在这里插入图片描述
非数字类型 与 数字类型 不能相加

first_name + 10  # 会报错
first_name + "10"  # '林10',这里10时字符串

4、类型转换函数

语法:

int(x) # 将输入转化为整型
float(x) # 将输入转化为浮点型

应用

在这里插入图片描述

5、变量的输入

函数只需要直接使用,不用关心内部细节。
input函数实现键盘输入,用户输入的任何内容都认为是一个 字符串 ,语法如下:

字符串变量 = input(“提示信息:”)

应用
在这里插入图片描述

6、变量的格式化输出

%称为格式化操作符,不同类型的数据需要使用不同的格式化操作符。

格式化字符含义
%s字符串
%d有符号十进制整数,%06d表示输出整数显示的位数,若原数字位数不够则在前面补0。(如66输出为000066)
%f浮点数,%.02f表示小数点后只显示两位。若原数字位数不够,则在后面补0
%%输出%
语法:

print(“格式化字符串” %变量1)
print(“格式化字符串” %(变量1,变量2…))

应用

name = "林黛玉"
print("绛珠草转世为%s" %name)
price = 2.9
print("臻浓牛奶售价%.02f元" %price)
rate = 99.99
print("合格品比率为%.02f%%" %rate)
number = 89751
print("编号%05d" %number)

输出为:
在这里插入图片描述

price = 2.9
print("三包臻浓牛奶售价%.02f元" %price*3)
print("三包臻浓牛奶售价%.02f元" %(price*3))

输出:
在这里插入图片描述

五、程序的三大流程

1、顺序

从上向下,顺序执行代码

2、if判断语句(又称为分支语句)

根据条件判断,决定执行代码的分支

条件成立,做某件事;
条件不成立,做另一件事 或者 什么也不做。

两种条件时的格式

if 要判断的条件:
    条件满足时执行的代码
    ......  
else:
    条件不满足时执行的代码
    ......

多种条件时的格式

elif同时判断多个条件,所有条件之间是平级的。

if 条件1:
    条件1满足时执行的代码
    ......
elif 条件2:
    条件2满足时执行的代码
    ......
elif 条件3:
    条件3满足时执行的代码
    ......
else:
    以上条件都不满足时执行的代码
    ...... 

if语句的嵌套

除了缩进之外,和if语句没什么区别
应用场景:在之前条件满足的条件下,再增加额外的判断

if 条件1:
    条件1满足时执行的代码
    ......  
    if 条件1 基础上的条件2:
        条件2满足时执行的代码
        ......  
    else:
        条件2不满足时执行的代码
        ......
else:
    条件1不满足时执行的代码
    ......

注意:代码的缩进为一个tab键,或者4个空格。在python中,tab和空格不要混用。 建议使用空格。if语句以及缩进部分是一个完整部分。else和elif不能单独使用,必须与if搭配使用。

应用1

age = int(input("输入年龄:"))
if age >= 18:
    print("成年")
else:
    print("未成年")

在这里插入图片描述
在这里插入图片描述
应用2

# 应该将导入工具包的语句放在程序的顶部。
# 这样可以方便下方程序 在任何需要的时候使用工具包中的工具。
import random

# 1、玩家从控制台输入要出的拳——石头1 / 剪刀2 / 布3
player = int(input("请输入你想要出的拳——石头1 / 剪刀2 / 布3:"))

# 2、电脑随机出拳
computer = random.randint(1, 3)
print("玩家出拳为%01d, 电脑出拳为%01d" % (player, computer))

# 3、比较胜负
"""
 if () or () or():这样写出的代码太长,不方便阅读。
 改进方法:if (()
         (8个空格缩进)or ()
         (8个空格缩进)or()):
"""
if ((player == 1 and computer == 2)
        or (player == 2 and computer == 3)
        or (player == 3 and computer == 1)):

    print("玩家胜")
elif player == computer:
    print("平局")
else:
    print("电脑胜")

输出结果:
在这里插入图片描述

在python中,要使用随机数,首先需要导入工具包:import random
导入模块后,可以直接在模块后敲一个.,然后按Tab键,就会提示该模块中包含的所有函数。
random.randint(a,b),返回[a,b]之间的整数,包含ab

3、循环

让特定的代码重复执行

(1)while循环

按照指定的次数循环。while语句及其缩进是一个整体。

语法

初始条件设置——通常是重复执行的计数器  # 如:i=1

while 条件:  # 判断 计数器 是否达到目标次数。没有括号!!
    条件满足时做的事情1
    条件满足时做的事情2
    条件满足时做的事情3
    ......
    
    处理条件(处理器 + 1) # 如i = i+1,或 i += 1

while循环嵌套:

while 条件1:
    条件满足时做的事情1
    条件满足时做的事情2
    条件满足时做的事情3
    ......
    while 条件2: 
        条件满足时做的事情1
        条件满足时做的事情2
        条件满足时做的事情3
    .    .....
    
        处理条件2
    处理条件1

死循环:由于程序员的原因,忘记在循环内部修改循环的判断条件,导致循环持续执行,程序无法终止。如 while True:
python中的计数方法

常见的计数方法有两种:
自然计数法(从1开始)——更符合人类的习惯
程序计数法(从0开始)——几乎所有的 程序语言 都选择从0开始计数

应用1

i = 0

while i < 4:
    print("红楼梦")
    i = i + 1  # 也可以写成  i += 1
print("循环结束后,i=%01d" % i)

输出:
在这里插入图片描述
循环计算

1、在while上方定义一个变量,用于存放最终计算结果
2、在循环体内部,每次循环都用 最新的计算结果,更新之前定义的变量

应用2:输出0-100之间数字总和

# 0-100之间数字总和
i = 0
sum = 0
while i <= 100:
    sum = sum + i
    i = i + 1
print("0-100之间所有数字之和为%d" % sum)

输出:
在这里插入图片描述
应用3:输出0-100之间偶数总和

# 0-100之间偶数总和
i = 0
sum = 0
while i <= 100:
    sum = sum + i
    i = i + 2
print("0-100之间所有偶数之和为%d" % sum)

输出:
在这里插入图片描述
应用4(输出五行 * )

i = 1
while i <= 5:
    print("*"*i)
    i += 1

在这里插入图片描述

#也可以写成这样:
i = 0

while i <= 5:
    j = 1
    while j <= i:
        print("*", end="")
        j += 1
    print("")  # 添加换行
    i += 1

在默认情况下,print函数输出内容之后,会自动在内容末尾增加换行。
如果不希望末尾增加换行,可以在print函数输出内容的后面增加, end=""。其中""中间可以指定print函数输出内容后显示的内容。

print("林黛玉", end="")
print("贾宝玉")
print("林黛玉", end="❥")
print("贾宝玉")

输出:
在这里插入图片描述
应用5:九九乘法表

i = 1

while i <= 9:
    j = 1  # 这行特别重要,不要写在while函数外
    while j <= i:
        print("%d * %d = %d" % (j, i, (i * j)), end="\t")  # \t 可以使输出整齐
        j += 1
    print("")  # 换行
    i += 1

输出:

如果end=“ ”,发现不对齐
在这里插入图片描述
将其改为end=“\t”:
在这里插入图片描述

(2)break

break某一条件满足时,退出循环,不在执行后续重复的代码
应用

i = 0

while i < 4:
    i = i + 1
    if i == 3:
        break
    print(i)
print("over")

输出:
在这里插入图片描述

(3)continue

continue某一条件满足时,不执行后续重复的代码
breakcontinue只针对 当前所在循环 有效

i = 0

while i < 4:
    i = i + 1
    if i == 3:
        continue
    print(i)
print("over")

在这里插入图片描述

六、运算符

1、比较(关系运算符)

在这里插入图片描述

2、逻辑运算符

(1)and

条件1 and 条件2
例:if a>0 and b>0:

(2)or

条件1 or 条件2
例:if a>0 or b>0:

(3)not
在开发中,如果希望某个条件不满足时执行一些代码,可以使用not

not 条件
例:if not a:

3、赋值运算符

赋值运算符中间不能使用空格
在这里插入图片描述

4、转义字符

\t在控制台输出一个 制表符 ,在不使用表格的情况下,协助在输出文本时 垂直方向 保持对齐。
\n在控制台输出一个 换行符
在这里插入图片描述
\t 应用:

print("1 2 3")
print("10 20 30")
print("使用转义字符后:")
print("1\t2\t3")
print("10\t20\t30")

输出:
在这里插入图片描述
\n 应用:

print("空山新雨后,天气晚来秋。\n明月松间照,清泉石上流。\n竹喧归浣女,莲动下渔舟。\n随意春芳歇,王孙自可留。")

在这里插入图片描述

5、运算符的优先级

附:快捷键

ctrl /可以使每一行代码前加上#变成注释。再次按ctrl /可以使注释变回代码。

在这里插入图片描述

Shift Enter为Jupyter里面的运行快捷键。

③全选代码,按Tab键:可以把代码整体缩进(向右移动)一个tab。

④全选代码,按Shift Tab键:可以把代码整体删除(向左移动)一个tab。

保存程序ctrl s

pyc文件表示 编译过的文件,由python解释器将 模块的源码 转换为 字节码,这是一种启动速度的优化。c意为compile。
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐