1.顺序流程控制
按照代码顺序执行。
例:编写一个程序,提示用户按圆的的半径计算圆的周长和面积。输入圆的半径:5.3,输出:半径为5.3cm的圆的周长为33.3,面积为88.2。
import math
pi = 3.14
r = float(input('input r = '))
S = pi * r**2
C = 2 * pi * r
print(f'半径为{r}cm的圆的周长为{C}, 面积为{S}')
2.分支流程控制
if-elif-else语句:
if 条件1:
action1
elif 条件2:
action2
else 条件3:
action3
例:输入成绩,分数大于等于85输出A,大于等于70且小于85输出B,大于60小于70输出C,其他输出D。
score = int(input('input your score: '))
if 85 <= score <= 100:
print(f'A')
elif 70 <= score < 85:
print(f'B')
elif 60 < score < 70:
print(f'C')
else:
print(f'D')
三元运算符:是软件编程中的一个固定格式,使用这个算法可以使调用数据时逐级筛选。
语法:条件表达式?表达式1:表达式2。
含义:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。
拓展:random模块
Python中的random模块用于生成随机数。
函数 | 函数功能 |
---|---|
random.random() | 生成0到1的随机浮点数:0<=n<1.0 |
random.uniform(a,b) | 生成一个指定范围内的随机浮点数:a<=n<b |
random.randint(a,b) | 生成一个指定范围内的整数:a<=n<b |
random.choice(‘abcdfeg’) | 从序列中获取一个随机元素 |
random.shufile([1,2,3,4,5,6]) | 将元素打乱顺序 |
例:闰年检测计算器
随机生成一个1900-2000之间的年份,判定给定年份是否是闰年?
规则:一个闰年就是能被4整除但是不能被100整除,或者year能被400整除。
输出:年份2000年是闰年。/年份1983年不是闰年。
import random
year = random.randint(1900, 2000)
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
print(f'{year} 是闰年')
else:
print(f'{year} 不是闰年')
3.循环流程控制
while循环语句语法结构
while 条件:
action
当条件为真时会一直循环下去,直到条件为假时跳出。
for循环原理:可以遍历序列成员,可以用在列表解析和生成器表达式中。
range语法: range(start,end,step=1)返回一个包含所有k的列表,start<=k<end,k每次递增。
- | |
---|---|
range(3) | [0, 1, 2] |
range(1,4) | [1,2,3] |
range(0,6,2) | [0,2,4] |
range(1,6,2) | [1,3,5] |
range(-3,1) | [-3,-2,-1,0] |
range(4,1,-1) | [4,3,2] |
跳出循环语句break语句和continue语句:
- break语句用来终止循环语句。
- continue语句跳过当前循环的剩余语句,然后继续下一轮循环。
例:
需求1:求1~100之间所有偶数的和
需求2:求1~100之间所有奇数的和
需求3:用户输入一个整型数,求该数的阶乘:4!= 4 * 3 * 2 * 1 = 24
九九乘法表:
for i in range(1, 10):
for j in range(1, i+1):
print(f'{j}*{i}={i*j} ', end='')
print()
用户登录系统:
根据输入用户名与密码,判断用户名和密码是否正确。为防止暴力破解,只有三次机会,如果超过三次机会则会报错。
log_time = 1
while log_time <= 3:
name = input('username: ')
password = input('password:')
if name == 'root' and password == 'westos':
print(f'user{name} login success')
exit()
else:
print(f'user{name} login not success')
log_time += 1
print('error')