python基础语法day2
一.分支结构
分支结构系统关键字:if、else、elif
- 单分支结构
# 在某个网站上登录账号
UserName = int(input('请输入账号'))
pwd = int(input('请输入密码'))
if UserName == 'admin' and pwd == '12345':
print('登录成功')
else:
print('账号或密码错误')
"""
语法:
for 条件:
代码块
else:
代码块
else分支可以不写
"""
# 练习:使用input输入一个人年龄,判断这个人是否成年
age = int(input('输入一个年龄'))
if age >= 18:
print('成年')
else:
print('未成年')
- 多分支结构
# 考试成绩划分等级(ABCDE)
score = 89
if score >= 90:
print('A')
elif 80<= score < 90:
print('B')
elif 70<= score < 80:
print('C')
elif 60 <= score <70:
print("D")
else:
print('E')
"""
语法:
if 条件:
代码块
elif 条件:
代码块
...
else:
代码块
elif 可以写无数个,else看情况写或者不写
"""
- 嵌套分支
一个分支结构再嵌套多个分支
# 判断数字是否是偶数,如果是偶数再判断其是否是10的倍数
num = 20
if num % 2 == 0:
print(f'{num}是偶数')
if num % 10 == 0:
print(f'{num}是10的倍数')
else:
print(f'{num}不是10的倍数')
else:
print(f'{num}是奇数')
- 三目运算符
1.针对单分支结构做的简化,性能和单分支没有差异
2.语法: 变量 = 结果1 if 条件 else 结果2
3.如果条件成立执行条件1,否则执行条件2
age = 20
result = '成年' if age >= 18 else '未成年'
print(result)
二.循环
- 可以借助程序来解决某一类复杂、繁琐的事情
- 循环关键字:for、in、while、break、continue、else
"""语法
for 变量 in 容器:
代码块
"""
# 计算1-100的和
# range(1,101):左闭右开区间,生成[1,101)中所有的整数
sum = 0
for i in range(1,101):
sum += i
print(sum)
- range(M,N,step)是左闭右开区间,相当于[M,N),每步增长step
- range容器区间是正向的,步长必须大于0,反之步长小于0,不写步长默认为1
- 只能范围起点不写,步长必须不写
- range(M,N,step): M是范围的起点,N是范围的终点,step是步长,默认是1,可以不写
- range(1,11):获取1-10十个元素
- range(1,11,3):获取1、4、7、10四个元素
- range(10):获取0-9十个元素
- range(12,4):获取不到元素
- range(0,10,-1):获取不到元素
- range(11,1,-1):获取不到元素
# 通过修改步长,计算100以内2的倍数和
sum = 0
for i in range(2,101,2):
sum += i
print(i)
# 计算100以内的阶乘
total = 1
for i in range(2,101):
total *= i
print(total)
三. while循环
- for适合循环次数确定的循环。
- while既适合循环次数确定的循环,又适合循环次数不确定的循环
'''
while 条件:
代码块
'''
# 计算1-100的和
sum = 0
i = 1
while i <= 100:
sum += i
i += 1
print(sum)
# 猜数字游戏,如果猜的数字比较大,提示再小一点,如果猜的数字比较小,提示再大一点,如果猜对了,游戏结束,如果7次之内猜不对,提示智商有限
import random
num = random.randint(1,100)
flag = True
count = 0
while flag:
num_1 = int(input('请输入你猜的数字:'))
count += 1
if num_1 > num:
print('再小一点')
elif num_1 < num:
print('再大一点')
else:
print('猜对了')
flag = False
if count > 7:
print('智商有限')
四. 跳出循环
- break:break被触发,直接结束所在循环
- continue:continue被触发,直接跳出所在循环的当次循环,进入下一次循环
for i in range(1, 101):
if i % 5 == 0:
print('****')
# break
continue
print('====')
else:
print(i)
# -----------------
i = 1
while True:
i += 1
if i == 50:
break
print(i)
五.for-else循环
- for-else循环适用于所有可能考虑完才能得到某一结论的场景。
- for循环正常结束之后,else语句被触发;如果for循环非正常结束,else语句不会被触发
# 案例:找出100以内所有的素数。
# 只有1和本身两个因子的正整数叫做素数。
for i in range(2, 101):
if i == 2:
print('2是素数')
else:
for j in range(2, i):
if i % j == 0:
print(f'{i}不是素数')
break
else:
print(f'{i}是素数')