6、Python——流程控制(程序设计的基本结构、程序流程图、顺序结构、选择语句、if的三元运算、for循环、while循环、pass占位符)

目录

1、程序流程控制

1.1、程序设计的基本结构

1.2、程序流程图

2、顺序结构

3、选择语句(if...else...)

3.1、选择结构/分支结构

3.2、if...elif...else

3.3、if的三元运算

3.4、if...else...小练习

4、循环语句(for...)

4.1、循环语句(for)

4.2、练习——判断字符串大小写

4.3、练习——用户登录验证

4.4、练习——猜数字

4.5、range

5、循环语句(while...)

5.1、练习——用户登录验证

6、pass、continue、break

6.1、pass:占位符

6.2、continue和break

7、关于流程控制的简单小练习

7.1、计算复利

7.2、接受一个字符串,看是不是回文

7.3、打印输出九九乘法表

7.4、打印100-999内的水仙花数

7.5、空气质量查询工具

7.6、猜大小游戏

7.7、关于这些练习的答案,博主有话要说


1、程序流程控制

1.1、程序设计的基本结构

任何的算法(程序)都可以由顺序结构、选择结构、循环结构,这三种基本结构组成来实现,顺序结构是程序的基础

1.2、程序流程图

任何算法(程序)都可以使用一系列图片、流程线和文字说明算法中的基本操作和控制流程
基本元素:操作框、流程线、文字说明

2、顺序结构

3、选择语句(if...else...)

3.1、选择结构/分支结构

  

import math
a = int(input("请输入边长a:"))
b = int(input("请输入边长b:"))
c = int(input("请输入边长c:"))
if a > 0 and b >0 and c > 0:
    print("边长大于0,输入合法")
    if (a+b) > c and (a+c) > b and (b+c) > a:
        print("两边之和大于第三边")
        p = (a+b+c) / 2
        s = math.sqrt(p*(p-a)*(p-b)*(p-c))
        print(f"面积为:",{s})
    else:
        print("两边之和小于或等于第三边")
else:
    print("边长小于0,输入不合法")

3.2、if...elif...else

age = int(input("please input your age:"))

if 100>age>=18:
    print("可以上网")
elif 0<age<18:
    print("不能上网")
else:
    print("输入不合法")

3.3、if的三元运算

str1 = input("请输入:")
print("Hello在字符串中") if ("Hello" in str1) else print("Hello不在字符串中")
print("hello%s存在字符串中"%('' if "hello" in str1 else "不"))

3.4、if...else...小练习

# 用户登录验证
# 登录成功失败都给予提示
# 最多可尝试3次密码,密码或用户名错误,提示你还有几次尝试机会


for i in range(1,4):
    username = input("请输入用户名")
    password = input("请输入密码")
    if username == 'root' and password == '123456':
        print("登录成功")
        break
    elif i == 3:
        print("你已经登录三次了,下次重试时间为24小时后")
        break
    else:
        print("登录失败,你还有",3-i,'次机会')
        continue

4、循环语句(for...)

4.1、循环语句(for)

for循环的功能是,对于iterable中的内一个元素 ,都"do something"

num = 0
for i in 'soekxie':
    num += 1
    if num == 2:
        continue    #退出本次循环
    print(f"第{num}个字符为:{i}")
    if num == 5:
        break
print("end...")

4.2、练习——判断字符串大小写

# 让用户输入一个字符串
# 分别取出每个字符,如果为大写输出1,如果为小写输出0
# 如,用户输入”aBc”则输出”010”

# method1
str1 = input("请输入一个字符串")
str2 = ''
for i in str1:
    if i.isupper():
        str2 += '1'
    elif i.islower():
        str2 += '0'
    else:
        str2 += i
print(str2)

# method2
str1 = input("请输入一个字符串")
for i in str1:
    if i.isupper():
        print(1,end='')    # 把end从默认的'\n',换成''
    elif i.islower():
        print(0,end='')
    else:
        print(i,end='')

4.3、练习——用户登录验证

# 输入用户名、密码
# 如果用户名为'root',密码为'123456',则登录成功,否则登录失败
username = input("请输入用户名")
password = input("请输入密码")
print("登录%s成功"%("" if username=="root" and password=="123456" else "不"))

4.4、练习——猜数字

#在程序内定义一个数字,让用户猜 
#检查用户输入的是否为数字 
#键盘接收用户输入,猜对或猜错都给出提示(大/小)  
#最多能猜3次
#给出用户最终猜的结果,及花了几次来猜

custom = input("请输入0-50中,你想要给人猜的数字")   #
for i in range(1,4):
    num = input("请输入0——50内的数字")
    if num.isdigit():
        if int(num) > custom:
            print("猜大了")
        elif int(num) == custom:
            print("猜对了,你花了",i,"次来猜")
            break
        else:
            print("猜小了")
    else:
        print("这个不是只有数字,请重新运行")
        break
else:
    print("三次机会用完了")

4.5、range

#range(3)   ---->  0,1,2
for i in range(3):
    print(i)

#range(4,9)
for i in range(4,9):     #左闭右开
    print(i)

# range(4,9,2)    ---->start,end,step
for i in range(4,9,2):
     print(i)

5、循环语句(while...)

5.1、练习——用户登录验证

# 用户登录验证
# 登录成功失败都给予提示
# 最多可尝试3次密码,密码或用户名错误,提示你还有几次尝试机会


start = 1
num = 0
while start == 1:
    username = input("请输入用户名")
    password = input("请输入密码")
    if username == 'root' and password == '123456':
        print("登录成功")
        start = 0
        break
    elif  num == 2:
            print("你已经登录三次了,下次重试时间为24小时后")
            break
    else:
        num += 1
        print("登录失败,你还有",3-num,'次机会')

6、pass、continue、break

6.1、pass:占位符

6.2、continue和break

7、关于流程控制的简单小练习

7.1、计算复利

想要知道如果把10000块钱存入银行,什么时候能变成20000(年利率为5%)
利息 = 本金*利率*时间。要求1:键盘要存入金额和目标金额;要求2:输出每年的本金和利息;要求3:给出需要多少年,才能达到目标金额

money = int(input("请输入你要存入的金额"))
target = int(input("请输入你要达到的目标金额"))
interest = 0
year = 0
while  interest < target:
    year += 1
    interest = money*(1+0.05)
    print(f"第{year}年的本金为:{money},利息为{interest-money}")
    money = interest
else:
    print(f"第{year}达到了目标金额")

7.2、接受一个字符串,看是不是回文

# method1
plalindrome = input("请输入一串字符串")   # 回文
j = len(plalindrome)
i = 0
for k in range(j//2):
    if plalindrome[i] == plalindrome[j-1]:
        continue
    else:
        print("这不是回文")
        break
else:
    print("这是回文")

# method2
plalindrome = input("请输入一串字符串")
if plalindrome == plalindrome[::-1]:
    print("这是回文")
else:
    print("这不是回文")

7.3、打印输出九九乘法表

关于一些制表符的叙述

for i in range(1,10):
    for j in range(1,i+1):
        result = i*j
        print(f"{j}*{i}={result}",end='\t')
    print()
# 制表符"\t",就是相当于一个八个字符的格子,把要输入的东西一个个填进去。要是输入的东西大于了8,就重新生成一个八个字符的格子

7.4、打印100-999内的水仙花数

水仙花数:水仙花数等于各个位的立方之和。举个例子:153=1**3 + 5**3 + 3**3

# method1
  153 = 1**3 + 5**3 + 3**3
for i in range(100,1000):
    b = i//100
    s = (i-b*100)//10
    g = i - b*100 - s*10
    if i == b**3 + s**3 + g**3:
        print(i)

# method2
for i in range(100,1000):
    a = i//100     # 9
    b = i%100      #后面的99
    c = b//10      #99的第一个9
    d = b%10       #99的第二个9
    m = a**3 + c**3 + d**3
    if i == m:
        print(i)

# method3
# 思路:可以进行切片

7.5、空气质量查询工具

password = input("空气质量查询工具,请按Enter键开始,'Q'或者'q'退出")
while password != 'q' and password != "Q":
    pm = input("请输入要查询的pm2.5的值,如果要退出,请按'q'或者'Q'")
    check = pm.replace(".","")
    if check.isdigit() :
        pm = float(pm)
        if 0 <= pm <= 50.0:
             print("空气质量:优")
             continue
        elif 51.0 < pm <= 100.0:
             print("空气质量: 良")
             continue
        elif 101.0 < pm <= 150.0:
             print("空气质量: 轻度污染")
             continue
        elif 151.0 < pm <= 200.0:
            print("空气质量: 中度污染")
            continue
        elif 201.0 < pm <= 300.0:
            print("空气质量: 重度污染")
            continue
        else:
            print("空气质量: 严重污染")
            continue
    elif pm.lower() == 'q':
        print("成功退出")
        break
    else:
        print("输入不合法")
        continue
else:
    print("成功退出")

7.6、猜大小游戏

# 设置奖品 (玩了500把以上)
# 1、iphone18一台 (胜率在80%-90%)
# 2、3000块  (胜率在70%-80%)
# 3、1000块  (胜率在55%-70%)

import random

# 默认金豆为:1000
gold_film = 1000
# 玩家玩这个游戏的次数
num = 0
# 胜场
win = 0
password = input("猜大小游戏,请按Enter开始,当然你随便按也能开始,按Enter只是为了那该死的仪式感,输入'exit'可以退出游戏: ")
while password != "exit":
    lucky = input("请输入猜'大'或者'小',要是想退出可以输入'exit'哦: ")
    dice = 0
    num += 1
    if gold_film > 100:
        for i in range(3):
            dice += random.randint(1,6)
        if 3 < dice <10:
            result = '小'
        else:
            result = "大"
        if lucky == result :
            print("你猜对了,你可以随意在北京挑一套楼房")
            gold_film += 100
            win += 1
            print(f"您当前还有{gold_film}的豆子")
        elif lucky.lower() == 'exit' :
            if num-1 == 0:
                print("客观,你还没玩呢,就要走了嘛")
            else:
                print(f"幸好你收手了,不然我就亏大发了,您总共玩了{num-1}把,胜率为{float(win/(num-1)*100)}%")
            if num-1 > 10:
                if 0.55 < win/(num-1) <= 0.7:
                    print('恭喜你获得1000元奖励')
                elif 0.7 < win/(num-1) <= 0.8:
                    print('恭喜你获得3000元奖励')
                elif 0.8 < win/(num-1) <= 1:
                    print("恭喜你获得了一台iphone18")
                else:
                    print("抱歉呀,虽然您的场数达到了要求,但是胜率实在低的不行,只能给您一个棒棒糖作为奖励啦")
            break
        elif lucky != result and lucky in ['大','小']:
            print("你没有猜对,适当赌博有益身心健康,沉迷赌博家破人亡")
            gold_film -= 100
            print(f"您当前还有{gold_film}的豆子")
            continue
        else:
            print("要么输入大或者小,要么就输入exit推出啦,别乱输入,听到没!")
            num -= 1
    else:
        print("亲,不好意思,您的金豆数量不够了哦,请您尽快充值,或者输入'exit'退出哦,不然就要撵你走了")
    print("{0:*^150}".format("这是一条可爱的分割线呢"))
else:
    print("亲,不要轻易越过雷池哦")

7.7、关于这些练习的答案,博主有话要说

这些代码仅供参考,若有问题,可以互相讨论,相互进步

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FanMY_71

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

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

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

打赏作者

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

抵扣说明:

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

余额充值