python笔记
1、程序的组织结构
任何简单或复杂的算法可以由三种基本结构组成
- 顺序结构
- 选择结构:if语句
- 循环结构:while语句、for-in语句
1.1 顺序结构
程序从上到下按顺序执行,中间没有任何判断和跳转,直到程序结束
1.2 选择结构
有判断条件,程序根据判断条件的布尔值选择执行哪个分支代码
- 单分支结构
- 双分支结构
- 多分支结构
1.2.1 单分支选择结构
- 中文语义:如果…就…
- 语法结构:if 条件表达式:
条件执行体
# 单分支选择结构练习:银行取款
balance=500
withdraw=int(input('请输入您要取款的金额:'))
if withdraw<=balance:
balance=balance-withdraw
print('取款成功,您的余额为:',balance)
# 输出结果
请输入您要取款的金额:>? 409
取款成功,您的余额为: 91
1.2.2 双分支选择结构
- 中文语义:如果…就…否则…就…
- 语法结构:if 条件表达式:
条件执行体1
else:
条件执行体2
# 双分支选择结构练习:银行取款
balance=500 #余额
withdraw=int(input('请输入您要取款的金额:')) # 取款金额
if withdraw<=balance:
balance=balance-withdraw
print('取款成功,您的余额为:',balance)
else:
print('余额不足,取款失败')
# 输出结果
请输入您要取款的金额:>? 400
取款成功,您的余额为: 100
请输入您要取款的金额:>? 501
余额不足,取款失败
1.2.3 多分支选择结构
- 在多分支结构中else是可以省略的
- 语法结构:if 条件表达式1:
条件执行体1
elif 条件表达式2:
条件执行体2
elif 条件表达式N:
条件执行体N
[else:]
条件执行体N+1
# 多分支选择结构练习:根据成绩判断所处级别
score=int(input('请输入一个成绩:'))
if score>=90 and score<=100:
print('A级')
elif score>=80 and score<=89:
print('B级')
elif score>=70 and score<=79:
print('C级')
elif score>=60 and score<=69:
print('D级')
else:print('不合格')
1.2.4 嵌套if的使用
- 语法结构:if 条件表达式1:
if 内层条件表达式:
内存条件执行体1
else:
内存条件执行体2
else:
条件执行体
(说明:条件表达式1符合的条件下才会执行内层条件表达式,否则直接else条件执行体)
# 嵌套if的使用练习:会员满多少打几折
member=str(input('您是会员吗?Y/N'))
money=float(input('请输入您消费的金额:'))
if member=='Y':
if money>=200:
print('会员8折,付款金额为:',money*0.8)
elif money>=100 and money<=199:
print('会员9折,付款金额为:',money*0.9)
else:print('会员金额不满不打折,付款金额为:',money)
else:
if money>=200:
print('非会员9.5折,付款金额为:',money*0.95)
else:print('非会员金额不满不打折,付款金额为:',money)
1.2.5 条件表达式
- 条件表达式是if…else的简写
- 语法结构:x if 判断条件 else y
- 运算规则:如果判断条件的布尔值为True,条件表达式返回值为x,否则条件表达式的返回值为False
1.2.6 pass语句
- 只是一个占位符,不起任何作用,用到需要写语句的地方防止程序直接报错
# pass语句:不起任何作用,只是一个占位符,临时占用语句位置防止程序报错
member=str(input('您是会员吗?Y/N'))
money=float(input('请输入您消费的金额:'))
if member=='Y':
pass
else:
pass
1.3 循环结构
1.3.1 while循环
- 语法结构:
while 条件表达式:
条件执行体(循环体) - while是判断N+1次,条件为True执行N次
# while循环
a=1
while a<10:
print(a)
a+=1
# 输出结果
1
2
3
4
5
6
7
8
9
- while四步循环法
1)初始化变量
2)条件判断
3)条件执行体(循环体)
4)改变变量
# while循环练习:计算0~4之间的累加和
a=0
sum=0
while a<5:
sum+=a
a+=1
print('累加和为:',sum)
# 输出结果
累加和为: 10
# while循环练习:计算1~100之间的偶数和
i=1
sum=0
while i<=100:
if i%2==0:
sum+=i
i+=1
print('1~100之间的偶数和为:',sum)
# 输出结果
1~100之间的偶数和为: 2550
# while循环练习:计算1~100之间的奇数和
i=1
sum=0
while i<=100:
if bool(i%2) is True:
sum+=i
i+=1
print('1~100之间的奇数和为:',sum)
# 输出结果
1~100之间的奇数和为: 2500
1.3.2 for -in循环
- 从字符串、序列等中依次取值,又称为“遍历”
- 遍历的对象必须是可迭代对象(如字符串、序列等)
- 语法结构:
for 自定义变量 in 可迭代对象:
循环体
(ps:在可迭代对象当中依次取出一个值把它赋值给自定义变量,再执行循环体,如果循环体内不需要访问自定义变量,可以将自定义变量替代为下划线_)
# for-in循环(举例可迭代对象为字符串)
for name in 'Python':
print(name)
# 输出结果
P
y
t
h
o
n
# for-in循环(举例可迭代对象为序列)
for name in range(1,3,1):
print(name)
# 输出结果
1
2
# for-in循环(举例循环体内不需要访问自定义变量时,可将自定义变量替代为下划线_)
for _ in range(3):
print('你好!') # 输出你好!执行3遍
# 输出结果
你好!
你好!
你好!
# for-in循环练习:计算1~100之间的偶数和
sum=0
for i in range(1,101,1):
if i%2==0:
sum+=i
print('1~100之间的偶数和为:',sum)
# 输出结果
1~100之间的偶数和为: 2550
1.3.3 流程控制语句break
- break用于跳出循环语句
- 通常与if搭配使用:满足if条件后break跳出循环体
# break跳出循环语句练习:输入解锁密码错误3次无法再次输入(用for-in循环)
pwd='666'
for i in range(100):
if i<=2:
scan = input('请输入密码:')
if scan!=pwd:
print('密码错误,请重新输入')
else:
print('密码正确,解锁成功')
break
else:
print('您已输入错误3次无法再次输入密码')
break
for i in range(3):
scan=input('请输入密码:')
if scan=='666':
print('密码正确')
break
else:
print('密码错误,请重新输入')
else:
print('您已连续输错3次密码,无法再次输入')
1.3.4 流程控制语句continue
- continue用于结束当前循环,进入下一次循环(break是跳出循环)
- 通常与if一起使用
# continue结束当前循环,进入下一个循环练习:输出1~50之间5的倍数
# 1、直接输出
for n in range(1,51):
if n%5==0:
print(n)
# 2、用continue输出
for n in range(1,51):
if n%5!=0:
continue
print(n)
1.3.5 循环嵌套
# 循环嵌套练习:输出一个3行4列的矩形阵列
for i in range(1,4):
for j in range(1, 5):
print('*',end="") #不换行,先全部打印出来
print() #换行打印
#输出
****
****
****
for i in range(1,4):
for j in range(1, 5):
print('*',end='\t') #不换行,先全部打印出来,\t空制表位
print() #换行打印
#输出
* * * *
* * * *
* * * *
# 九九乘法表
for i in range(1,10): #行数
for j in range(1,i+1):
print(i,"*",j,"=",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