Python核心笔记(四)输入、程序分支结构与循环
一、输入
input
函数接受一个参数,即要项用户显示的提示(prompt)
present = input('你想要什么礼物?')
print(present, type(present)) # str类型
输出:
你想要什么礼物?ddd
ddd <class 'str'>
input的高级使用
# 从键盘录入两个整数,计算两个整数的和
a = input('请输入一个加数:')
b = input('请输入另一个加数:')
print(type(a), type(b))
print(a+b) # 简单拼接str
print(int(a) + int(b)) # 默认为str,需要转类型,或者用a=int(a),转后输出a+b即可,或者用a=int(input('请输入一个加数:')),提前转换
二、if语句
1.单分支结构
money = 1000 # 余额
s = int(input('请输入取款金额:')) # 取款金额
# 判断余额是否充足
if s <= money :
money -= s
print('取款成功,余额为:', money)
输出:
请输入取款金额:100
取款成功,余额为: 900
2. 双分支结构
if-else
结构
# 从键盘录入一个整数,编写程序让计算机判断奇偶性
num = int(input('请输入一个整数:'))
# 条件判断
if num % 2 == 0:
print(num, '是偶数')
else:
print(num, '是奇数')
输出:
请输入一个整数:111
111 是奇数
3.多分支结构
score = int(input('请输入一个成绩:'))
# 判断
if 90 <= score <= 100:
print('A级')
elif 80 <= score <= 89:
print('B级')
elif 70 <= score <= 79:
print('C级')
elif 60 <= score <= 69:
print('D级')
elif 0 <= score <= 59:
print('E级')
else:
print('数据非法')
输出:
请输入一个成绩:45
E级
4.嵌套if的使用
'''会员 >=200 8折
>100 9折
<100 不打折
非会员 >=200 95折
<200 不打折'''
answer = input('你是会员吗?y/n:')
money = float(input('请输入您的购物金额:'))
# 外层判断是否是会员
if answer == 'y':
print('是会员')
if money >= 200:
money *= 0.8
print('最终金额:', money)
elif 200 > money >= 100:
money *= 0.9
print('最终金额:', money)
else:
print('最终金额:', money)
else: # 非会员
print('不是会员')
if money >= 200:
money *= 0.95
print('最终金额:', money)
else:
print('最终金额', money)
输出:
你是会员吗?y/n:y
请输入您的购物金额:1563
是会员
最终金额: 1250.4
三、循环
1.while循环
四步循环法:
1.初始化变量
2.条件判断
3.条件执行体(循环体)
4.改变变量
a = 1
# 判断条件表达式
while a < 10:
# 执行条件执行体
print(a,end=' ')
a += 1
输出:
1 2 3 4 5 6 7 8 9
计算1到100的奇偶数和:
c = 1
sum1 = 0
while c <= 100:
if c % 2: # c % 2 == 1: # 用到了对象的布尔值
sum1 += c
c += 1
print('1到100之间的奇数和:', sum1)
d = 1
sum2 = 0
while d <= 100:
if d % 2 == 0:
sum2 += d
d += 1
print('1到100之间的偶数和:', sum2)
2.for in 循环
# for-in遍历,对象必须是可迭代对象(字符串、序列等)
for item in 'Python': # 第一次取出来的是P,将P赋值item,将item的值输出
print(item,end=' ')
输出:P y t h o n
# range()产生一个整数序列,也是一个可迭代对象
for i in range(10):
print(i,end=' ')
输出:0 1 2 3 4 5 6 7 8 9
# 如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_”
for _ in range(5):
print('Payton 666')
输出:
Payton 666
Payton 666
Payton 666
Payton 666
Payton 666
# 使用for循环计算100到999之间的水仙花数(三位数,各个位数的三次方之和等于本身,153)
for item in range(100,1000):
ge = item % 10
shi = item // 10 % 10
bai = item // 100
if ge ** 3 + bai ** 3 + shi ** 3 == item:
print(item)
输出:
153
370
371
407
3.循环中流程控制语句
(1)break语句
结束循环
# 从键盘区录入密码,最多录入三次,如果正确就结束循环
for _ in range(3):
pwd = input('请输入密码:')
if pwd == '8888':
print('密码正确')
break
else:
print('密码不正确')
请输入密码: 888
密码不正确
请输入密码: 8888
密码正确
(2)continue语句
结束当前循环,进入下一循环:
# continue: 结束当前循环,进入下一循环
# 要求:输出1到50之间所有5的倍数(和5的余数为0)
for item in range(1, 51):
if item % 5 != 0:
continue
else:
print(item)