Python 基础入门(二)
一、 学习目标:
掌握各种分支结构的使用方法
掌握各种循环结构的使用方式
掌握分支结构与循环结构的嵌套使用方式
二、 分支结构介绍
根据指定条件是否成立确定是否执行相应的代码块:
-
单分支结构
-
二分支结构
-
多分支结构
-
分支结构嵌套
三、 单分支结构
根据一个指定条件确定是否执行相应的代码块
if 条件:
语句块
案例:如果输入一个数大于零则输出“正数”,否则不输出
# 单分支结构
x = 1
if x > 0:
print("这是一个正数")
print("程序结束")
x = -1
if x > 0:
print("这是一个正数")
print("程序结束")
x = --1
if x > 0:
print("这是一个正数")
print("程序结束")
x = int(input("请输入一个整数:"))
if x > 0:
print("这是一个正数")
print("程序结束")
四、 二分支结构
根据一个指定条件选择执行相应的代码块
if条件:
语句块1
else:
语句块2
案例:如果一个数大于零则输出“正数”,如果小于零则输出“负数”
# 双分支结构
x = int(input("请输入一个整数:"))
if x == 0:
exit(0) # 退出
else:
pass # 空语句
if x > 0:
print("这是一个正数")
else:
print("这是一个负数")
print("程序结束")
根据多个指定条件选择执行相应的代码块
if 条件1:
语句块1
elif条件2:
语句块2
……
else条件n:
语句块n
案例:如果一个数大于零则输出“正数”,如果小于零则输出“负数”,如果等于零则输出“零”
# 多分支结构
x = int(input("请输入一个整数:"))
if x > 0:
print("这是一个正整数")
elif x < 0:
print("这是一个负整数")
else:
print("这是一个零")
print("程序结束")
if 1:
print("执行")
if 0.00:
print("执行")
if not None:
print("执行")
match...case
match后的对象会依次与case后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_可以匹配一切;
语法格式如下:
Match subject:
Case<pattern_1>:
<action_1>
Case <pattern_2>:
<action_2>
Case_:
<action_ wildcard>
x = int(input("请输入一个整数【1, 2, 3】:"))
match x:
case 1:
print("吃米饭")
case 2:
print("吃面条")
case 3:
print("吃饼干")
case _:
print("不吃了")
print("程序结束")
##
x = int(input("请输入一个整数:"))
y = 0
if x < 0:
y = -1
elif x > 0:
y = 1
else:
y = 0
match y:
case -1:
print("这是一个负数")
case 1:
print("这是一个正数")
case 0:
print("这是一个零")
print("程序结束")
##
print(2.5e3) #科学计数法
print(2.5e-3)
练习:狗龄换算为人龄问题:
如果狗龄是1岁则相当于14岁的人
如果狗龄是2岁则相当于22岁的人
如果狗龄大于2岁则按“22+(dog-2)*5”岁的人
如果输入非正整数则输出“狗龄必须大于0岁”
dog = int(input("请输入dog的年龄:"))
if dog <= 0:
print("狗龄必须大于0岁")
elif dog == 1:
print("相当于14岁的人")
elif dog == 2:
print("相当于22岁的人")
elif dog > 2:
print(f'相当于{22 + (dog-2)* 5}岁的人')
练习:编写代码实现以下映射关系:
如果代号是400则输出“Bad request”
如果代号是404则输出“Not found”
如果代号是500则输出“Sever error”
如果是其他代码则输出“Something’s woring with the internet”
# 单分支
code = int(input("请输入错误代码【400, 404, 500】:"))
if code == 400:
print("Bad request")
if code == 404:
print("Not found")
if code == 500:
print("Server error")
if code != '400' and code != '404' and code != '500':
print("Something wrong with the internet")
# 双分支
code = input("请输入代号:")
if code == '400':
print("Bad request")
else:
if code == '404':
print("Not found")
else:
if code == '500':
print("Server error")
else:
print("Something wrong with the internet")
# 双分支
code = input("请输入代号:")
if code == '400':
print("Bad request")
elif code == '404':
print("Not found")
elif code == '500':
print("Server error")
else:
print("Something wrong with the internet")
#######
code = input("请输入代号:")
match code:
case '400':
print("Bad request")
case '404':
print("Not Found")
case '500':
print("Server Error")
case _:
print("Something wrong with the internet")
五、 分支结构嵌套
单分支结构、双分支结构与多分支结构之间可以任意嵌套
单分支结构、双分支结构与多分支结构可以相互替代
案例:根据学生考试成绩分数划分不同等级
90 – 100分:优秀
80 – 89 分:良好
70 – 79 分:中等
60 – 69 分:及格
0 – 59分:不及格
# 根据成绩判定等级
mark = int(input("请输入成绩:"))
if mark < 0:
print("输入不合法")
elif mark >= 0 and mark <= 59:
print("不及格")
elif mark >= 60 and mark <= 69:
print("及格")
elif mark >= 70 and mark <= 89:
print("良好")
elif mark >= 90 and mark <= 100:
print("优秀")
else:
print("输入不合法")
######
mark = int(input("请输入成绩:"))
if mark > 100:
print("输入不合法")
elif mark >= 90:
print("优秀")
elif mark >= 80:
print("良好")
elif mark >= 70:
print("中等")
elif mark >= 60:
print("及格")
elif mark >= 0:
print("不及格")
else:
print("输入不合法")
六、 分支结构的案例:人机猜数
程序的主要逻辑如下:
计算机生成一个范围内的随机数,作为猜测的答案
- 用户输入猜测的数字
- 通过比较用户输入的数字和随机数的大小关系,给出一些提示信息
- 用户根据提示信息进行调整猜测,重新输入数字
- 重复步骤3和4,直到用户猜测出正确的答案
- 通过调用 random.randomint(a,b)函数可以生成[a,b]之间的一个整数
# print(random.randint(1, 10))
import random # 导入模块
print(random.randint(1, 10))
from random import randint
print(randint(1, 10))
# 猜数游戏
pc = random.randint(1, 5)
pe = int(input("请输入一个1到5之间的整数:"))
if pe < 1 or pe > 5:
print("输入不合法")
elif pe < pc:
print("小了")
elif pe > pc:
print("大了")
else:
print("胜利了")
####代码改进
import random
count = 0
pc = random.randint(1, 10)
while True:
pe = int(input("请输入一个1到10之间的整数:"))
count += 1
if pe < 1 or pe > 10:
print("输入不合法")
elif pe < pc:
print("小了")
elif pe > pc:
print("大了")
else:
print("胜利了")
break
else:
pass
print("一共猜了",count, "次")
print("游戏结束!!!!")
七、 循环结构介绍
循环语句有for和while
八、 while循环结构
while语句的一般形式:
while条件:
语句块1
else:
语句块2
x = 1
while x == 1:
print("hello world")
print("game over")
x = 0
while x < 5:
print("hello world")
x += 1
else:
pass
print("game over")
x = 1
while x <= 5:
print(x)
x += 1
else:
pass
print("game over")
# 使用while三步:
# 1.初始化计数器
# 2.条件(计数器)判断
# 3.更新计数器
cnt = 0
while cnt <5:
print("cnt = ", (cnt + 1))
cnt += 1
else:
pass
案例:通过循环输出100以内的所有偶数
x = 0
while x <= 100:
if x % 2 == 0:
print(x)
x += 1
else:
print("game over")
九、 for循环结构
for循环可以遍历任何可迭代的对象,如果一个列表或者一个字符串
数列range(start,end)
for循环的一般格式如下:
for变量in序列:
语句块1:
else:
语句块2
for cnt in range(1, 6):
print("cnt = ", cnt)
else:
pass
案例:求取1+2+3...+100的和,即高斯和
# 高斯和
# 第一种方法
x = 1
s = 0
while x <= 100:
s += x
x += 1
else:
print("s = ", s)
#
# 第二种方法
s = 0
for x in range(1, 100+1):
s += x
else:
print("s = ", s)
十、 嵌套循环结构
While循环与for循环可以任意嵌套
# *
# **
# ***
# ****
# *****
# ******
# *******
# ********
# **********
for i in range(1, 10):
for j in range(1, i + 1):
print("*", end='\t')
else:
print()
else:
pass
for i in range(1, 10):
for j in range(1, i + 1):
print(j,"*",i,"=",i*j, end='\t')
else:
print()
else:
pass
r = 1
while r <= 9:
c = 1
while c <= r:
print(c,"*",r,"=",c*r, end='\t')
c += 1
else:
print()
r += 1
# *
# **
# ***
# ****
# *****
# ******
# *******
# ********
# *********
# **********
# ***********
for r in range(0, 9):
print(" "*(9-r),"*"*(r+1),end='\t')
else:
pass
for r in range(0, 9):
for b in range(0, r):
print(" ",end='')
else:
pass
for s in range(0, 9-r):
print("*", end='')
else:
pass
print()
else:
pass
# *************
# ************
# ***********
# **********
# *********
# ********
# *******
# ******
# *****
# ****
# ***
# **
# *
for r in range(0, 9):
for c in range(0, 9-r):
print("*", end='')
print()
else:
pass
# 2
# 22
# 222
# 2222
# 22222
s = 0
count = 0
for r in range(1, 6):
s = 2*(10 ** (r-1)) + s
count += s
print(s)
print(count)
十一、循环结构案例
l 求取100以内所有的质数并输出
l 将以上所有质数求和
l 提示:最小质数是2
# 求取100以内的所有质数之和
# 思路:
# 第一步:找出所有质数
# 第二步:求和
s = 0
for n in range(2, 100+1):
for m in range(2, n//2+1):
if n % m == 0:
break
else:
print(n)
s += n
else:
print("s =", s)
补充:
#break:退出循环
for x in range(1, 11):
if(x > 5):
break
print(x)
else:
print("循环正常结束")
print("=============")
for x in range(1, 11):
for y in range(11, 21):
if y > 13: break
print(x,",",y)
else:
print("内层循环结束")
else:
print("外层循环结束")
十二、总结
分支结构:
if分支、if-else分支、elif分支
循环结构:
while循环、for循环
标签:elif,code,入门,Python,基础,else,while,print,分支 From: https://www.cnblogs.com/zhm135/p/18303716