目录
一、判断(if)语句
1.1 if判断语句语法
if 条件表达式:
条件成立时,要做的事情
……
注:条件表达式后的:
注意:代码的缩进为一个
tab
键,或者 4 个空格 —— 建议使用空格
- 在 Python 开发中,Tab 和空格不要混用!
1.2 if else
if 条件表达式:
条件成立时,要做的事情
……
else:
条件不成立时,要做的事情
……
注意:
if 和 else 语句以及各自的缩进部分共同是一个 完整的代码块
运行结果如下图所示:
age = int(input("年龄为:"))
if age>=18:
print("可以进入")
else:
print("不可以进入")
1.3 if-elif语句
- 语法格式如下:
if 条件1: 条件1满足执行的代码 …… elif 条件2: 条件2满足时,执行的代码 …… elif 条件3: 条件3满足时,执行的代码 …… else: 以上条件都不满足时,执行的代码 ……
注意
elif
和else
都必须和if
联合使用,而不能单独使用- 可以将
if
、elif
和else
以及各自缩进的代码,看成一个 完整的代码块
示例:
day=input("节日是:")
if day=="情人节":
print("情人节快乐!")
elif day=="平安夜":
print("平安夜快乐!")
elif day=="圣诞节":
print("圣诞节快乐!")
else:
print("everyday is happy")
运行截图如下:
1.4 if嵌套
- 语法格式如下:
if 条件 1: 条件 1 满足执行的代码 …… if 条件 1 基础上的条件 2: 条件 2 满足时,执行的代码 …… # 条件 2 不满足的处理 else: 条件 2 不满足时,执行的代码 # 条件 1 不满足的处理 else: 条件1 不满足时,执行的代码 ……
1.5逻辑运算
- Python 中的 逻辑运算符 包括:与 and/或 or/非 not 三种
1.5.1 and
条件1 and 条件2
- 两个条件同时满足,返回
True
- 只要有一个不满足,就返回
False
1.5.2 or
条件1 or 条件2
- 两个条件只要有一个满足,返回
True
- 两个条件都不满足,返回
False
1.5.3 not
not 条件
- 通常希望某个体哦阿健不满足时执行程序,可以使用not
- 如果需要拼接复杂的逻辑计算条件,同样可以使用not
示例:
"""
要求年龄在0-120之间
age >=0 age<=120
"""
age = 199
if age >= 0 and age <= 120:
print("年龄符合要求")
else:
print("年龄不符合要求")
1.6 随机数的处理
- 在
Python
中,要使用随机数,首先需要导入 随机数 的 模块 —— “工具包”import random
-
导入模块后,可以直接在 模块名称 后面敲一个
.
然后按Tab
键,会提示该模块中包含的所有函数 -
random.randint(a, b)
,返回[a, b]
之间的整数,包含a
和b
例如:
- random.randint(12, 20) # 生成的随机数n: 12 <= n <= 20
- random.randint(20, 20) # 结果永远是 20
- random.randint(20, 10) # 该语句是错误的,下限必须小于上限
1.7 示例:石头剪刀布
#导入随机工具包
import random
#输入玩家要出的拳:石头(1)剪刀(2)布(3)
player=int(input("出拳:"))
#电脑随机出拳
cpt=random.randint(1,3)
print("玩家出拳为:%d - 电脑出拳为:%d"%(player,cpt))
if (player==1 and cpt==2) \
or (player==2 and cpt==3) \
or (player==3 and cpt==1):
print("玩家赢")
elif (player==cpt):
print("平局")
else:
print("玩家输")
二、循环
2.1 while
循环
while
循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行
初始条件设置 —— 通常是重复执行的 计数器 while 条件(判断 计数器 是否达到 目标次数): 条件满足时,做的事情1 条件满足时,做的事情2 条件满足时,做的事情3 ...(省略)... 处理条件(计数器 + 1)
注意:
while
语句以及缩进部分是一个 完整的代码块
2.2 赋值运算符
- 注意:赋值运算符中间不能使用空格
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
%= | 取 模 (余数)赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
2.3 break 和 continue
break
和continue
是专门在循环中使用的关键字
break
某一条件满足时,退出循环,不再执行后续重复的代码continue
某一条件满足时,不执行后续重复的代码
break
和continue
只针对 当前所在循环 有效
2.3.1 break
- 在循环过程中,如果 某一个条件满足后,不 再希望 循环继续执行,可以使用
break
退出循环
i = 0
while i < 10:
# break 某一条件满足时,退出循环,不再执行后续重复的代码
# i == 3
if i == 3:
break
print(i)
i += 1
print("over")
2.3.2 continue
- 在循环过程中,如果 某一个条件满足后,不 希望 执行循环代码,但是又不希望退出循环,可以使用
continue,跳转到条件判断语句。
- 即在整个循环中,只有某些条件,不需要执行循环代码,而其他条件都需要执行
i = 0
while i < 10:
# 当 i == 7 时,不希望执行需要重复执行的代码
if i == 7:
# 在使用 continue 之前,同样应该修改计数器
# 否则会出现死循环
i += 1
continue
# 重复执行的代码
print(i)
i += 1
- 需要注意:使用
continue
时,条件处理部分的代码,需要特别注意,不小心会出现 死循环
continue
只针对当前所在循环有效
三、循环嵌套
3.1 while循环嵌套
while 条件 1:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
while 条件 2:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
处理条件 2
处理条件 1
注:
-
在默认情况下,
print
函数输出内容之后,会自动在内容末尾增加换行 -
如果不希望末尾增加换行,可以在
print
函数输出内容的后面增加, end=""
-
其中
""
中间可以指定print
函数输出内容之后,继续希望显示的内容 -
语法格式如下:
# 向控制台输出内容结束之后,不会换行 print("*", end="") # 单纯的换行 print("") end="" 表示向控制台输出内容结束之后,不会换行
3.2 字符串中的转义字符
\t
在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐\n
在控制台输出一个 换行符
制表符 的功能是在不使用表格的情况下在 垂直方向 按列对齐文本
转义字符 | 描述 |
---|---|
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\n | 换行 |
\t | 横向制表符 |
\r | 回车 |
四、函数
- 所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用
- 函数的使用包含两个步骤:
- 定义函数 —— 封装 独立的功能
- 调用函数 —— 享受 封装 的成果
- 函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的 重用
4.1 函数的定义
def 函数名(): 函数封装的代码 ……
注:
def
是英文define
的缩写- 函数名称 应该能够表达 函数封装代码 的功能,方便后续的调用
- 函数名称 的命名应该 符合 标识符的命名规则
- 可以由 字母、下划线 和 数字 组成
- 不能以数字开头
- 不能与关键字重名
4.2 函数的调用
- 调用函数,通过
函数名()
即可完成对函数的调用
def multiple_table():
i = 1
while i <= 9:
j = 1
while j <= i:
print("%d * %d =%d " % (j, i, i * j), end="\t")
j += 1
print("")
i += 1
multiple_table()
运行截图:
思考
-
能否将 函数调用 放在 函数定义 的上方?
- 不能!
- 因为在 使用函数名 调用函数之前,必须要保证
Python
已经知道函数的存在 - 否则控制台会提示
NameError: name 'multiple_table' is not defined
(名称错误:multiple_table 这个名字没有被定义)
4.2.1 PyCharm 的调试工具
- F8 Step Over 可以单步执行代码,会把函数调用看作是一行代码直接执行
- F7 Step Into 可以单步执行代码,如果是函数,会进入函数内部
4.2.2 函数的文档注释
- 在开发中,如果希望给函数添加注释,应该在 定义函数 的下方,使用 连续的三对引号
- 在 连续的三对引号 之间编写对函数的说明文字
- 在 函数调用 位置,使用快捷键
CTRL + Q
可以查看函数的说明信息
注意:因为 函数体相对比较独立,函数定义的上方,应该和其他代码(包括注释)保留 两个空行
4.3 函数的参数
- 函数,把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用
- 函数的参数,可以增加函数的 通用性,针对 相同的数据处理逻辑,能够 适应更多的数据
- 在函数 内部,把参数当做 变量 使用,进行需要的数据处理
- 函数调用时,按照函数定义的参数顺序,把 希望在函数内部处理的数据,通过参数 传递
4.3.1 形参和实参
- 形参:定义 函数时,小括号中的参数,是用来接收参数用的,在函数内部 作为变量使用
- 实参:调用 函数时,小括号中的参数,是用来把数据传递到 函数内部 用的
4.3.2 函数的返回值
- 返回值 是函数 完成工作后,最后 给调用者的 一个结果
- 在函数中使用
return
关键字可以返回结果 - 调用函数一方,可以 使用变量 来 接收 函数的返回结果
注意:
return
表示返回,后续的代码都不会被执行