相关链接
- 目录
- Mac M1 Python环境搭建
- Python3.x入门 P1 【基础】基础语法、注释、标识符、变量、数据类型、键盘录入input
- Python3.x入门 P2 【基础】运算符
- Python3.x入门 P3 【基础】流程语句【循环结构】
- Python3.x入门 P4 【基础】序列 - 公共方法总结
- Python3.x入门 P5 【基础】可变序列(列表list、字典dict、集合set)
- Python3.x入门 P6 【基础】不可变序列(元组tuple、字符串str)
- Python3.x入门 P7 【字符串格式化】四种方式(手动、%-formatting、str.format()、f-String)
- Python3.x入门 P8 【函数】
- Python3.x入门 P9 【异常Error】常见Error、异常捕获try catch
简介
任何简单或复杂的算法都可以由1.顺序结构、2.选择结构(if语句)、3.循环结构(while语句,for-in语句)组合而成。
一、顺序结构(略)
if语句语法
if 要判断的条件:
条件成立时,要做的事情
....
注意:代码的缩进为一个tab键,或者4个空格,建议使用空格
二、选择结构
if、elif、else语句语法
# 基础用法
if 要判断的条件1:
条件1成立时,要做的事情
....
else:
条件1不成立时,要做的事情
...
# 进阶用法
if 要判断的条件1:
条件1成立时,要做的事情
....
elif 要判断的条件2:
条件2成立时,要做的事情
....
elif 要判断的条件3:
条件3成立时,要做的事情
....
else:
条件1、2、3都不成立时,要做的事情
...
2.1 if、elif、else选择结构
money = 1000; # 余额
tips = "当前余额为 " + str(money) + " 元,请输入取款金额:"
get = int(input(tips)) # 取款金额
b = True
# 判断余额是否充足
if get < 0:
print("取款金额不能为负")
elif get < money:
print("取款成功,余额为" + str(money - get), "元。")
else:
print("余额不足。")
"""测试结果1
当前余额为 1000 元,请输入取款金额:-5
取款金额不能为负
取款成功,余额为1005 元。
"""
"""测试结果2
当前余额为 1000 元,请输入取款金额:123
取款成功,余额为877 元。
"""
"""测试结果3
当前余额为 1000 元,请输入取款金额:1234
余额不足。
"""
2.2 选择结构嵌套
"""
业务逻辑:如果是会员,大于200打1折,100-200打5折,低于100不打折
如果不是会员,大于200打9折,低于200不打折
"""
isMember = input("是会员吗?y/n:")
if isMember not in ('y','n'):
print("输入错误")
quit()
money = int(input("购物金额:"))
if isMember == 'y':
if money > 200:
money *= 0.1
elif money > 100 & money < 200 :
money *= 0.5
if isMember == 'n':
if money > 200:
money *= 0.9
print("实际付款金额为:",str(money))
"""
是会员吗?y/n:y
购物金额:2000
付款金额为: 200.0
"""
"""
是会员吗?y/n:n
购物金额:150
实际付款金额为: 150
"""
三、条件表达式(三元运算符)
"""
条件表达式类似于Java中使用的三元运算符,仅有if、else两种结果,不支持其他elif分支条件
"""
uname = input("用户名:")
pwd = input("密码:")
# 选择结构
if uname == "stenven" and pwd =="123":
print("欢迎登陆!")
else:
print("用户名或密码输入错误!")
print('-----')
# 条件表达式
print("欢迎登陆!" if uname == "stenven" and pwd =="123" else "用户名或密码输入错误!")
四、循环结构
4.1 rang() 循环 - 生成list
"""
用于创建一个整数序列
创建range对象的三种方式
1)range(stop):创建[0,stop)之间的整数序列,步长为1
2)range(start,stop):创建[start,stop)之间的整数序列,步长为1
3)range(start,stop,step):创建[start,stop)之间的整数序列,步长为step
返回一个迭代器对象
range优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,
因为仅仅需要存储start,stop和step,只有当用到时才会计算
int与not in判断是否存在指定整数
"""
"""range(stop)"""
r = range(10)
l = list(r) # 用于查看range对象中的整数序列
print(l) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
"""range(start,stop,step)"""
r = range(1, 50, 5)
l = list(r)
print(l) # [1, 6, 11, 16, 21, 26, 31, 36, 41, 46]
"""int与not in判断是否存在指定整数"""
print(6 in r) # True
print(6 in l) # True
print(8 in r) # False
print(6 not in l) # False
4.2 while循环
"""
循环分类 while for-in
语法:
while 条件表达式:
条件执行体(循环体)
选择结构的if与循环while的区别:
if判断一次,条件True执行一次
while判断n+1次,条件为True执行n次
"""
a: int = 1
while a < 5:
print(a) # 1 2 3 4
a += 1
4.3 for循环
"""
for-in循环:
in表达从(字符串、序列等)中依次取值,又称为遍历
for-in便利的对象必须是可迭代对象
for-in语法结构:
for 自定义的变量 in 可迭代对象:
循环体
【可迭代对象】:字符串、序列等
循环体内不需要访问自定义变量,可以将自定义变量替代为下划线
"""
print("-------for-in String--------")
for i in "python":
print(i)
"""
p
y
t
h
o
n
"""
print("-------for-in range()--------")
for i in range(2, 5, 1):
print(i)
"""
2
3
4
"""
print("-------for-in nothing--------")
for i in range(3):
print("hello world")
"""
hello world
hello world
hello world
"""
print("-------for-in 1-100偶数求和--------")
sum = 0;
for i in range(101):
if i % 2 == 0:
sum += i
print(sum)
"""2550"""
五、pass、break、continue
5.1 pass 跳过
- 适用于:选择结构、循环结构
"""
pass语句:什么都不做,只是一个占位符,用在语法上需要语句的地方
并不会跳过,pass语句前面、后面的执行逻辑
when:先搭建语法结构,还没想好代码怎么写
where:1)if的条件执行体、2)for-in的循环体、3)函数的函数体
"""
answer = input("是会员吗?y/n")
if answer == 'y':
print("123")
pass
print("321")
else:
pass # 这里如果什么都不写是不能通过编译的
"""
是会员吗?y/n y
123
321
"""
5.2 break 跳出循环
5.2.1 while - break
- 适用于:循环结构
"""
break语句:用于结束循环结构,通常与分支结构if一起使用
"""
# 键盘输入密码,最多3次,如果正确,提示登录成功,超过3次提示账户已锁定
password = "python"
i = 0;
while i < 3:
if input("请输入密码:\n") == "python":
print("密码正确,登陆成功")
break
elif i != 2:
print("密码错误,剩余尝试次数:", 2 - i)
i += 1
else:
print("密码错误,账户已锁定")
break
"""
请输入密码:
python
密码正确,登陆成功
"""
"""
请输入密码:
1
密码错误,剩余尝试次数: 2
请输入密码:
2
密码错误,剩余尝试次数: 1
请输入密码:
3
密码错误,账户已锁定
"""
5.2.2 for - break
"""
break语句:用于结束循环结构,通常与分支结构if一起使用
"""
# 键盘输入密码,最多3次,如果正确,提示登录成功,超过3次提示账户已锁定
password = "python"
for i in range(3):
if input("请输入密码:\n") == "python":
print("密码正确,登陆成功")
break
elif i != 2:
print("密码错误,剩余尝试次数:", 2 - i)
else:
print("密码错误,账户已锁定")
5.2.3 嵌套循环 - break (九九乘法表)
'''实现99乘法表'''
for i in range(0, 10, 1):
for j in range(1, i + 1, 1):
if j > i:
break
print(str(i), "*", str(j), "=", str(i * j), end="\t")
print("")
'''
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
'''
5.3 continue 进入下一次循环
- 适用于:循环结构
5.3.1 while - continue
"""
continue语句:用于结束当前循环,进入下一次循环,通常预分支if一起使用
"""
'''输出1-20之间所有5的倍数'''
i: int = 1;
while i < 20:
i += 1
if i % 5 != 0: continue
print(i)
"""
5
10
15
20
"""
5.3.2 for - continue
"""
continue语句:用于结束当前循环,进入下一次循环,通常预分支if一起使用
"""
'''输出1-20之间所有5的倍数'''
i: int = 1;
for i in range(20):
if i % 5 != 0: continue
print(i)
"""
5
10
15
20
"""
5.3.3 嵌套循环 - continue
"""
嵌套循环中的break和continue只用于控制本层循环
else -> if ... else
-> while ... else
-> for ... else
"""
for i in range(1, 5):
if (i % 2 == 0):
continue
else:
print(i)
else:
print("abc")
"""
1
3
abc
"""
六、逻辑运算
1. 在程序开发中,通常在判断条件时,会需要同时判断多个条件
2. 只有多个条件都满足,才能够执行后续代码,这个时候需要使用到逻辑运算符
3. 逻辑运算符 可以把多个条件按照逻辑进行连接,变成更复杂的条件
4. Python中的逻辑运算符包括:与and/或or/非not 三种
6.1 and
- 两个条件同时满足,返回True
- 只要有一个不满足就返回False
条件1 and 条件2
6.2 or
- 两个条件只要有一个满足,返回True
- 两个条件都不满足,返回False
条件1 or 条件2
# 条件改写,两种写法效果相同
if 0 < age and age < 100
if 0 < age < 100:
6.3 not
not 条件
# 这里的not只修饰条件1
if not 条件1 and 条件2:
22/06/27
M