Python 基础入门(二)

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循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI小白日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值