1.顺序结构
# 赋值运算符的顺序,从右到左 把右侧的值赋值给左侧的变量
name = '张三'
age = 20
a = b = c = 100 # 链式赋值
a, b, c, d = 'room' # 字符串分解赋值 单独赋一个字符的值
print(a) # r
print(b) # o
print(c) # o
print(d) # m
2.选择结构
2.1if语句
number = eval(input("请输入你的六位中奖号码:"))
if number == 987654:
print("恭喜你,中奖了!")
if not number == 987654:
print('你未中本期大奖')
2.1.1使用 条件表达式 进行简化
result = '恭喜你,中奖了!' if number == 987654 else '你未中本期大奖'
print(result)
print('恭喜你,中奖了!' if number == 987654 else '你未中本期大奖')
2.1.2if的语句判断
结果为True则执行if语句 如果结果为1则结果为True,结果为0则为False
n = 98
if n % 2:
print('n是奇数') # 由于98 % 2的结果是0,所以不执行
if not n % 2:
print('n是偶数')
2.1.3判断一个字符串是空字符串
x = input('请输入一个字符串')
# 在Python中一切皆对象,每个对象都有一个布尔值。而非空字符串结果为True,空字符串结果为False
if x:
print('x是一个非空字符串')
if not x:
print('x是一个空字符串')
# 表达式也可以是一个单纯的布尔型变量
flag = True
if flag:
print('flag的值是True')
# 如果if语句中只有一句代码,可以将语句块写在冒号的后面
a = 10
b = 5
if a > b:max = a
else: max = b
print('最大值为:', max)
2.1.4多分支
# 多分支 判断成绩
score = eval(input('请输入你的成绩:'))
if score < 0 or score > 100:
print('成绩有误!!')
elif score > 95:
print('s级')
elif score > 90:
print('a级')
elif score > 80:
print('b级')
elif score > 70:
print('c级')
elif score > 60:
print('d级')
else:
print('e级')
2.1.5 嵌套if的使用
answer = input('请问,你喝酒了吗:(y/n)')
if answer == 'y':
proof = eval(input('请输入酒精含量:'))
if proof < 20:
print("构不成酒驾")
elif proof < 80:
print('已构成酒驾,请不要开撤')
else :
print('你已构成醉驾,请马上睡觉')
else:
print('你走吧,没你事')
2.1.6if多条件的满足
user = input('请输入你的用户名:')
password = input('请输入你的密码:')
if user == 'admin' and password == 'e1234567':
print('登录成功')
else:
print('账号或密码错误,登录失败')
2.2match语句——模式匹配
score = input('请输入成绩等级:')
match score:
case 's':
print('优秀')
case 'a':
print('良好')
case 'b':
print('一般')
case 'c':
print('及格')
case 'd':
print('不及格')
# 如果score都没有匹配上,则跳过match语句,。例如输出abc,则跳过match语句
# 如果是match语句在while语句中,可加break
3.循环结构
3.1for循环
3.1.1遍历字符串
for i in 'hello':
print(i) # 打印字符串,一个字符一行
3.1.2range函数
产生一个[n, m]的整数序列,包含n不包含m
for i in range(1, 11):
print(i) # 打印1 - 10 整数,一个整数一行
3.1.3计算1 - 10的和
sum = 0
for i in range(1, 11):
sum = sum + i
print('1-10之间的和为:', sum)
3.1.4练习一、判断100-999之间的水仙花数
# 水仙花数:个位**3 + 十位**3 + 百位**3 == 原本的值
for i in range(100, 1000):
single = i % 10 # 个位数
tens_digit = i // 10 % 10 # 十位数
hundreds_digit = i // 100 % 10 # 百位数
if single ** 3 + tens_digit ** 3 + hundreds_digit ** 3 == i:
print(i)
3.1.5遍历循环的扩展形式
s = 0 # 用于存储累加和
for i in range(1, 11):
s += i
# 循环正常结束就执行else部分,如果是break异常跳出循环则不执行else部分
else:
print('1-10之间的累加和为:', s)
3.2.while循环
3.2.1while循环的4个步骤
# 1.初始化变量
answer = input('今天要上课吗?y/n:')
# 2.条件判断
while answer == 'y':
# 3.语句块
print('好好学习,天天向上')
# 4.改变变量
answer = input('今天要上课吗?y/n:')
3.2.2计算1-100之间的和
sum = 0
# 1.初始化变量
i = 1
# 2. 条件判断
while i <= 100:
# 3.语句块
sum += i
# 4.改变变量
i += 1
# 循环正常结束(无break跳出循环) 执行else语句
else:
print('1-100之间的累加和是:', sum)
3.3.3使用无限while循环模拟登录
# 1.初始化变量
i = 0
# 2.条件判断
while i < 3:
# 3.语句块
user_name = input('请输入用户名:')
password = input('请输入密码:')
if user_name == 'admin' and password == 'e1234567':
print('登录成功')
i = 8
# break
else:
if i < 2:
print('用户名或密码不正确,你还有', 2 - i, '次机会')
# 4.改变变量
i += 1
if i == 3: # 当用户名或密码输错3次后,循环执行结束了,i的值 = 3
print('本机已冻结')
4.pass空语句
'''
pass是Python中的保留字——在语法结构中起到占位符的作用,防止语法报错
一般用于if、for、while、函数定义、类定义中
'''
if True:
pass
while True:
pass
for i in range(10):
pass
5.章节练习
5.1练习一,键盘输入一个4位数的年份,判断是否是闰年
year = eval(input('请输入4位数的年份,将判断是不是闰年:'))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
print(year, '年是闰年')
else:
print(year, '年不是闰年')
5.2练习二,模拟10086查询功能
# 输入1显示当前余额。输入2显示当前流量,输入3显示当前的剩余通话。输入0退出自助查询系统
inquire = 1
while inquire:
print('------------欢迎使用10086查询功能------------')
print('1查询当前余额\n2查询当前流量\n3查询剩余通话\n0退出系统')
inquire = eval(input('请输入你的选择:'))
match inquire:
case 1:
print("当前余额还有xx.xx元")
break
case 2:
print('当前流量还剩xx.xxGB')
break
case 3:
print('当前通话时长还剩xxx分钟')
break
case 0:
print('系统已退出')
break
5.3练习三,使用嵌套循环输出九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(j, '*', i, '=', j * i, end='')
print(' ', end='')
print()
# 1 * 1 = 1
# 1 * 2 = 2 2 * 2 = 4
# 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
# 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
# 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
# 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
# 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
# 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
# 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
5.4练习四,猜数字
# 猜数字,产生一个随机数,大了或者小了可提示
import random
rand = random.randint(1, 100)
count = 10 # 记录猜数的次数,只有10次机会
while count >= 1:
number = eval(input("请输入你要猜的数字:"))
if number == rand:
print("恭喜你猜中了")
break
elif number > rand:
print("大了,还剩", count - 1, '次机会')
else:
print('小了,还剩', count - 1, '次机会')
count -= 1
else:
print('很遗憾没有猜中, 答案是:', rand)