Cris 的Python日记(三):循环语句

零、序

台上书院修竹掩窗牖,
窗下唱一出玉佩赠友。
少年相识偕游,曾契金兰鸡黍,
经年竟不识枕边青衣水袖。

台下客笑谈旧年掌故,
写书人曾苦沈园消瘦。
病中满纸荒唐,字字痴情磨就,
且听此段佳人欲语还休:

“君去归来须三秋,
应忘重山尽处桃李旧。
余我争如江楼倚门人,
候君再同游。”

墙边古稀人满斟新酒,
痛饮时低问季子安否。
四十年冰雪重,闻此折犹泪透,
且恨春风空绝塞鸿雁锦书。

笑魑魅未觉若兰锦绣,
只留桃李寄飘零日久。
平生万种凄凉,未悔当年断袖,
恰如此刻伶人唱尽折柳:

“一别生死难相守,
从此夜雨江湖无故旧。
若惆怅应洒酒对归舟,
如我方回首。”

“此身且去且淹留,
不过还望老来一邂逅。
而今夜雨江湖皆陈酒,
问君归来否?”

摘自·网易云音乐《夜雨陈酒》·歌词

一、while 循环

# while 循环
# while 循环:
# 语法:while 条件表达式:
#               代码块
# while True 将会造成死循环!

# 循环的三个要点:1.变量初始化表达式;2.变量条件表达式;3.变量更新表达式
# 创建一个执行10次的循环
# num = 0
# while num<10:
#     num +=1
#     print(num)

# 练习1:
#     求100以内所有的奇数之和

# num = 0
# result = 0
# while num < 100:
#     num += 1
#     if num % 2 != 0:
#         result += num
# print(result)   # 52500

# 练习2:
#     求100以内所有7的倍数之和,以及个数
num = 7
result = 0
count = 0
while num < 100:
    result += num
    count += 1
    num += 7
print(f'100以内所有7的倍数之和为:{result},个数是:{count}')

# 练习3:
#     水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1**3 + 5**3 + 3**3 = 153)。
#     求1000以内所有的水仙花数
# 注意,和java 不同的是,Python具有 // 整除,以及/ 得到都是浮点数

num = 100
while num < 1000:
    if ((num % 10)**3) + ((num // 100)**3) + ((num % 100 // 10)**3) == num:
        print(num)
    num += 1

# 练习4:
#     获取用户输入的任意数,判断其是否是质数。质数是只能被1和它自身整除的数,1不是质数也不是合数。
# 开放得到的结果都是小数
# print(17**0.5)    # 4.1232312

num = int(input('请输入任意大于1的整数'))
if num <= 1:
    print('输入错误!')
else:
    count = 1
    flag = True
    while count <= int(num**0.5):
        count += 1
        if num % count == 0:
            print(num, '不是质数')
            flag = False
            break
    if flag:
        print(num, '是质数')

二、嵌套循环

from time import *
# 循环的嵌套
# 练习1:
#     打印99乘法表
#     1*1=1
#     1*2=2 2*2=4
#     1*3=3 2*3=6 3*3=9
#     ...                 9*9=81
hang = 1
while hang <= 9:
    num = 1
    while num <= hang:
        # 可以通过命令参数(end)的形式对print()函数的结束符进行设置
        print(f'{num}*{hang}={num * hang}', end=' ')
        num += 1
    print()
    hang += 1

# 练习2:
#     求1000以内所有的质数


def isPrime(num):
    if num <= 1:
        print('输入错误!')
    else:
        count = 1
        while count <= int(num**0.5):
            count += 1
            if num % count == 0:
                return False
        return True


start = time()
num = 2
while num < 10000:
    if isPrime(num):
        print(num, '是质数')
    num += 1
print('程序执行了', time() - start, "秒")

# break 用于立即退出循环语句(包括else);continue 用于跳过当次循环
# break 和 continue 默认只对最近的循环起作用
# pass 用于代码占位,没有任何实际意义
i = 1
while i < 5:
    if i == 3:
        break
    print(i)
    i += 1
# else:         # break 影响到这条else 语句不执行
#     print('james')
print("cris")   # 这条普通语句执行

三、小 case:唐僧和白骨精的爱情故事

要求如下:

    1、身份选择
        ① 显示提示信息
            欢迎光临 xxx 游戏!
            请选择你的身份:
                1.xxx
                2.xxx
            请选择:x
        ② 根据用户选择来分配身份(显示不同的提示消息)  
            1.---
            2.---
            3.---  

    2、游戏进行
        ① 显示玩家的基本信息(攻击力 生命值)
        ② 显示玩家可以进行的操作:
            1、练级
                - 提升玩家的攻击力和生命值
            2、打BOSS
                - 玩家对BOSS进行攻击,玩家要攻击BOSS,BOSS对玩家进行反击
                - 计算BOSS是否被玩家消灭,玩家是否被BOSS消灭
                - 游戏结束
            3、逃跑
                - 退出游戏,显示提示信息,游戏结束!

代码如下:

print('===================欢迎来到游戏:《唐僧大战白骨精》=================')
print('''请选择你的身份:
            1. 唐僧
            2. 白骨精''')
num = int(input('请选择(1-2):'))
if num == 1:
    print('你已经选择了唐僧,开始游戏吧!')
elif num == 2:
    print('卧槽~要不要脸,还选白骨精,不行不行,还是给你分配个唐僧')
else:
    print('没有眼睛?乱选还是给你分配个唐僧')
life = 2
attack = 2
monster_life = 10
monster_attack = 6
print(f'你的身份现在是唐僧,你的生命值是:{life},你的攻击力是:{attack}')
print('-------------------------------')


def printMessage():
    return int(input('''请选择你要做的操作:
                1. 练级
                2. 打Boss
                3. 逃跑
                请选择:'''))


while True:
    num = printMessage()
    if num == 1:
        life += 2
        attack += 2
        print(f'恭喜你,唐僧!升级了!你当前的生命值是:{life},你的攻击力是:{attack}')
    elif num == 2:
        monster_life -= attack
        if monster_life <= 0:
            print('唐僧真牛逼,砍死了白骨精!game over')
            break
        life -= monster_attack
        if life <= 0:
            print('白骨精干死了唐僧,game over')
            break
        print(f'当前唐僧还剩下{life} 点血,白骨精还剩下{monster_life} 点血,激战正酣~')
    elif num == 3:
        print('退出游戏成功')
        break
    else:
        print('请重新输入')

四、for循环

for 循环普遍和后面的Python 数据结构搭配使用,等到后面整理到Python 数据结构再写~

脑图

《尚硅谷Python核心基础》视频教程,系尚硅谷Python+人工智能学科历时多月,精心打磨而成。授课老师从业经验丰富,讲课由浅入深,贴近真实开发,紧紧围绕Python核心基础知识,系统讲解操作系统、Python环境搭建、Python的基本语法、类型和对象、流程控制、函数、函数式编程、面向对象、文件操作等内容。同学们学习本教程,可为今后从事人工智能方向的工作,打下坚固的基础。 任务1: 尚硅谷_Python基础_01_课程简介16:30 任务2: 尚硅谷_Python基础_02_计算机简介20:03 任务3: 尚硅谷_Python基础_03_命令行简介17:07 任务4: 尚硅谷_Python基础_04_常用DOS命令17:02 任务5: 尚硅谷_Python基础_05_环境变量13:12 任务6: 尚硅谷_Python基础_06_Path环境变量15:36 任务7: 尚硅谷_Python基础_07_进制介绍21:30 任务8: 尚硅谷_Python基础_08_文本和字符集17:04 任务9: 尚硅谷_Python基础_09_sublime的使用14:04 任务10: 尚硅谷_Python基础_10_sublime的基本设置06:35 任务11: 尚硅谷_Python基础_11_计算机语言简介14:08 任务12: 尚硅谷_Python基础_12_编译型语言和解释型语言10:03 任务13: 尚硅谷_Python基础_13_Python简介20:08 任务14: 尚硅谷_Python基础_14_Python环境搭建13:00 任务15: 尚硅谷_Python基础_15_Python的交互模式19:54 任务16: 尚硅谷_Python基础_16_文件的扩展名02:06 任务17: 尚硅谷_Python基础_17_Sublime和Python的整合10:01 任务18: 尚硅谷_Python基础_18_几个基本概念26:40 任务19: 尚硅谷_Python基础_19_Python的基本语法20:13 任务20: 尚硅谷_Python基础_21_变量和标识符24:08 任务21: 尚硅谷_Python基础_20_字面量和变量09:30 任务22: 尚硅谷_Python基础_22_数值16:22 任务23: 尚硅谷_Python基础_23_字符串简介19:30 任务24: 尚硅谷_Python基础_24_格式化字符串20:24 任务25: 尚硅谷_Python基础_25_字符串复制05:11 任务26: 尚硅谷_Python基础_26_布尔值和空值06:10 任务27: 尚硅谷_Python基础_27_类型检查07:59 任务28: 尚硅谷_Python基础_28_对象介绍10:25 任务29: 尚硅谷_Python基础_29_对象的结构16:20 任务30: 尚硅谷_Python基础_30_变量和对象12:23 任务31: 尚硅谷_Python基础_31_类型转换20:38 任务32: 尚硅谷_Python基础_32_算术运算符14:16 任务33: 尚硅谷_Python基础_33_赋值运算符07:40 任务34: 尚硅谷_Python基础_34_关系运算符22:17 任务35: 尚硅谷_Python基础_35_逻辑运算符20:38 任务36: 尚硅谷_Python基础_36_非布尔值的逻辑运算符10:34 任务37: 尚硅谷_Python基础_37_条件运算符09:25 任务38: 尚硅谷_Python基础_38_运算符的优先级19:36 任务39: 尚硅谷_Python基础_39_if语句21:51 任务40: 尚硅谷_Python基础_40_if语句213:29 任务41: 尚硅谷_Python基础_41_input函数12:08 任务42: 尚硅谷_Python基础_42_if-else语句08:10 任务43: 尚硅谷_Python基础_43_if-elif-else语句15:06 任务44: 尚硅谷_Python基础_44_if练习(1)21:28 任务45: 尚硅谷_Python基础_45_if练习(2)17:34 任务46: 尚硅谷_Python基础_46_while语句16:08 任务47: 尚硅谷_Python基础_47_while练习(1)16:33 任务48: 尚硅谷_Python基础_48_水仙花数10:44 任务49: 尚硅谷_Python基础_49_质数练习17:19 任务50: 尚硅谷_Python基础_50_循环嵌套16:51 任务51: 尚硅谷_Python基础_51_练习14:13 任务52: 尚硅谷_Python基础_52_break和continue11:12 任务53: 尚硅谷_Python基础_53_质数练习第一次优化18:16 任务54: 尚硅谷_Python基础_54_质数练习第二次优化11:10 任务55: 尚硅谷_Python基础_55_《唐僧大战白骨精》分析12:43 任务56: 尚硅谷_Python基础_56_游戏的欢迎信息13:00 任务57: 尚硅谷_Python基础_57_完成游戏29:09 任务58: 尚硅谷_Python基础_58_列表的简介23:31 任务59: 尚硅谷_Python基础_59_切片16:54 任务60: 尚硅谷_Python基础_60_通用操作17:00 任务61: 尚硅谷_Python基础_61_序列08:32 任务62: 尚硅谷_Python基础_62_修改列表15:02 任务63: 尚硅谷_Python基础_63_列表的方法21:27 任务64: 尚硅谷_Python基础_64_遍历列表11:09 任务65: 尚硅谷_Python基础_65_EMS项目练习_添加员工25:57 任务66: 尚硅谷_Python基础_66_EMS项目练习_删除员工11:28 任务67: 尚硅谷_Python基础_67_range07:48 任务68: 尚硅谷_Python基础_68_元组17:49 任务69: 尚硅谷_Python基础_69_可变对象20:12 任务70: 尚硅谷_Python基础_70_==和is03:35 任务71: 尚硅谷_Python基础_71_字典简介16:49 任务72: 尚硅谷_Python基础_72_字典的使用(1)26:45 任务73: 尚硅谷_Python基础_73_字典的使用(2)16:19 任务74: 尚硅谷_Python基础_74_字典的遍历07:31 任务75: 尚硅谷_Python基础_75_集合的介绍19:39 任务76: 尚硅谷_Python基础_76_集合的运算15:21 任务77: 尚硅谷_Python基础_77_函数简介15:23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值