一,分支结构
选择结构,需要用到的关键字:if , else, elif
1.单分支结构
“”"
语法:
if 条件:
代码块
else:
代码块
else语句不一定需要添加
“”"
%d 表示将整型插入到字符串的某个位置
%f 表示将浮点型插入到字符串的某个位置
%s 表示将文本型插入到字符串的某个位置
在某个网站登录账号
Username = input('请输入账号:')
Pwd = input('请输入密码:')
if Username == 'asd' and Pwd == '1234':
print('登录成功')
else:
print('账号或密码错误')
练习:判断任意三条边是否能组成三角形。
a = 7
b = 6
c = 13
if a + b > c and a + c > b and b + c > a:
print("可以构成三角形")
else:
print("不能构成三角形")
2.多分支结构
“”"
语法:
if 条件:
代码块
elif 条件:
代码块
elif 条件:
代码块
…
else:
代码块
(else语句可以不写)
“”"
练习: 使用多分支结构判断一个年份是否是闰年
year = int(input("请输入一个年份:"))
if year % 4 == 0 and year % 100 != 0:
print("%d年为闰年" % year)
elif year % 400 == 0:
print("%d年为闰年" % year)
else:
print("%d年不是闰年" % year)
嵌套分支:
练习:判断一个数字是奇数还是偶数,如果是偶数,再判断是不是4的倍数
num = int(input("请输入一个数:"))
if num % 2 == 0:
if num % 4 == 0:
print("%d是偶数也是4的倍数" % num)
else:
print("%d是偶数但不是是4的倍数" % num)
else:
print("%d是奇数" % num)
3. 三目运算符
单分支结构的变形(作用:简化单分支结构)
语法:
变量= 结果1 if 条件 else 结果2
如果条件成立,执行结果1,否则执行结果2
age = int(input('请输入你的年龄:'))
result = '成年' if age >= 18 else '未成年'
print(result)
三目运算符与单分支结构没有区别
仅仅在美观度(简洁程度)上有区别
二, 循环
循环:解决重复执行某一类工作的语法。
循环涉及到的关键词:for,in,while,break,continue,else
1.for–in 循环
“”"
语法:
for 变量 in 容器:
代码块
“”"
容器:range,字符串,列表,集合,元组,字典等
案例:计算1-100的和
sum = 0
for i in range(1, 101): # range(1,101)生成[1,100]的所有的整数
print(i)
sum += i
print(sum)
range(M,N,step) M:范围起点,闭区间; N:范围终点,开区间;step:步长,默认为1
当step大于0时,M必须小于N,如果step不写,从M开始取数据,并且M为0时,M可以不写,默认为0.
如果range中只有一个数字x,并且x大于0的,代表从0获取到x-1,此时x等于结束范围N
# 1.计算1-100之间所有5的倍数的数字和
number=0
for i in range(5,101,5):
print(i)
number += i
print(number)
range(100,90,-1) —从[100,90)区间从大到小依次获取元素
range(-10,-20,-1) —从[-10,-20)区间从大到小依次获取元素
当step小于0时,M必须大于N;
2. while循环
for循环是根据容器中元素个数来确定循环次数。
while循环既可以有限次的循环,也可以无限次的循环。
while 循环语法:
“”"
while 条件:
代码块
“”"
案例:猜数字游戏,从1-100范围内随机指定一个数字,找玩家猜数字,
如果猜对了,游戏结束;如果猜大了,猜小了给提示。只有7次机会。
from random import randint
# randint()能够在指定的范围内随机生成一个整数
num = randint(1,100)
# print(num)
flag = True
count = 0
while flag:
result=int(input("请输入你猜的数字:"))
count += 1
if result > num:
print("再小一点")
elif result < num:
print("再大一点")
else:
print("猜对了!")
flag = False
if count >7:
print('智商有限')
break
# pass #pass作用:保持结构的完整性,不参与程序执行。
3. break 和 continue
break:被触发时,直接结束当前所在循环。
continue:被触发时,结束当前所在循环的本次循环,进入下一次循环
4. for-else语句:
当for循环非正常结束时,else语句不执行;
for循环正常结束时,else语句被触发;
应用场景:某一结论在所有情况判断完成以后才确定,可以使用for-else循环
案例:找出100以内所有的素数。
素数(质数):一个数字,只有1和本身两个因子。2是最小的素数。
for i in range(2, 101):
if i == 2:
print("2是素数")
else:
for x in range(2, i):
if i % x == 0:
print("%d不是素数" % i)
break
else:
print("%d是素数" % i)