0
点赞
收藏
分享

微信扫一扫

python进阶----第五课(下)

J简文 2022-02-19 阅读 62

python进阶,在第一期的基础上做了极大的优化,整体更加美观易懂

五、for循环()

内容较多,分为上下两个篇幅,此篇是下

5.4、for与while的配合使用!

例如:

# while与else组合
j = 0
while j < 5:
    if j == 3:
        break  # break属于终止,不是正常结束,所以不会打印else
        j += 1
    print("生活不易,程序袁叹气!!!")
    j += 1
else:
    print("叹气完毕,继续肝!")
# 结果:
>>> 生活不易,程序袁叹气!!!
>>> 生活不易,程序袁叹气!!!
>>> 生活不易,程序袁叹气!!!
j = 0
while j < 5:
    if j == 3:
        j += 1  # 注意:此段j += 1的位置不同,如果此句在Continue后面,j不会自加,该程序会陷入死循环
        continue  # break属于终止,不是正常结束,所以不会打印else
    print("生活不易,程序袁叹气!!!")
    j += 1
else:
    print("叹气完毕,继续肝!")
# 结果:

>>> 生活不易,程序袁叹气!!!
>>> 生活不易,程序袁叹气!!!
>>> 生活不易,程序袁叹气!!!
>>> 生活不易,程序袁叹气!!!
>>> 叹气完毕,继续肝!
str1 = "狂徒张三,和帮凶李四!"
for j in str1:
    if j == "和":
        break
    print(j)
else:
    print("结束!!")
# 结果:
>>>>>>>>>>>>>>>
str1 = "狂徒张三,和帮凶李四!"
for j in str1:
    if j == "和":
        continue
    print(j)
else:  # for循环中同理,只要是遇到break那么else就不起作用,如果是continue则跳过循环,那么else后的程序会执行
    print("结束!!")
# 结果:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 结束!!

5.5、字符串和下标

例如

name_1 = 'Ton1'
name_2 = """Ton2"""  # 三个单引号或者是三个双引号都可以
name_3 = "Ton3"
print(f"{name_1}\n{name_2}\n{name_3}")
# 结果:
>>> Ton1
>>> Ton2
>>> Ton3
str1 = "zhangsan"  # 字母从零开始,一一对应。张三拼音共8个字母,从0开始到7结束
"""
打印张三拼音的开头首字母即z和s
"""
>>> print(str1[0])  # 写法 序列名,加下标  即序列名[下标]
>>> print(str1[5])
# 结果:
>>> z
>>> s

5.6、课外衍生扩展

二人猜拳游戏 ,掷骰子游戏
玩家手动输入,电脑随机输入(随机模块)

# 使用模块方法,乐趣、首先使用input导入模块
# import random
# 使用模块内的功能函数->randint()
# 先导入模块,然后再模块名点需要使用的功能函数
# random.randint(0, 2)  # randint随机函数,0到2之间三个数随机

import random  # 导入模块
print("\n\n————————————有两个小游戏————————————\n乐趣、石头剪刀布\n2、骰子比大小\n\n输入开头数字即可")
num_1 = int(input("请输入:"))  # input输入的默认为字符串类型,所以加int格式化为整型
print("\n游戏开始:")
if num_1 == 1:
    computer = random.randint(0, 2)  # randint->随机函数,括号内0,1即表示0到2三个数之间随机输出一个
    print("请输入0~2之间的数")
    print("0->石头,1->剪刀,2->布\n")
    you = int(float(input("请出拳:")))  # 注意input类型为字符串,如果不转换,会导致结果不正确,其次因为题目是0到2之间,所以包含小数,于是进行去小数操作(先由字符串类型转换为浮点型再转换为整型),如果观众老爷有更好的办法欢迎留言
    print()
    # 玩家输入数字转换
    print("玩家输入:", you)
    if you == 0:
        print("自动转换->玩家出石头")
    elif you == 1:
        print("自动转换->玩家出剪刀")
    elif you == 2:
        print("自动转换->玩家出布")
    else:
        print("输入错误,请重新运行程序并且输入")  # 输入数据不在0到2之间
    # 电脑随机数字转换
    print("电脑输出", computer)
    if computer == 0:
        print("0代表石头,并自动转换为石头")
    elif computer == 1:
        print("1代表剪刀,并自动转换为剪刀")
    else:
        print("2代表布,并自动转换为布")
    # 判断输赢 ->核心代码  # 石头剪刀布只有3种结果,平局,然后就是输赢,只要先把玩家赢的可能性写出来,然后去掉平手的可能性,其余的只有输入错误或者是输
    if (you == 0 and computer == 1) or (you == 1 and computer == 2) or (you == 2 and computer == 0):
        print("玩家胜利")
    elif you == computer:
        print("本局平局")
    elif you > 2 or you < 0:
        print("玩家输入错误,本局不计入成绩,请重新运行该程序,输入数据在0到2之间!!!")
    else:
        print("电脑胜利")
    # 游戏结束
    print("游戏结束!")
    
# 骰子数字比大小
elif num_1 == 2:
    print("请输入1到6之间的整数,包括1和6\n")
    computer_1 = random.randint(0, 5)  # 括号内可以直接是1, 6 但是奉行计算机都是从0开始计数原则,于是宁可麻烦一点点也要“从零开始”
    You_1 = int(input("请输入:"))  # 大于,小于,等于,输入错误例如输入7
    print()
    computer_1 += 1
    if You_1 > 6 or You_1 < 1:  # 题目已说明 1到6之间整数,但是输入小于1大于6的数依然会出问题,为遵守游戏规则,加限制条件
        print("您输入的数字为%d\n亲爱的玩家,您输入的数字小于1或者大于6,请重新运行该程序,再次输入!" % You_1)
    elif computer_1 < You_1:
        print("玩家输入骰子数字为:%d\n电脑随机生成骰子数字为:%d\n %d > %d -->玩家获胜" % (You_1, computer_1, You_1, computer_1))
    elif computer_1 > You_1:
        print("您输入的数字为: %d\电脑生成的数字为:%d\n %d > %d -->电脑获胜" % (You_1,  computer_1, computer_1, You_1))
    else:
        computer_1 == You_1
        print("玩家输入骰子数字为%d\n电脑生成随机骰子数字为%d\n真巧,数字一样,平手" % (You_1, computer_1))
    print("游戏结束!")
#
else:
    print("请输入1或2哦 !")

举报

相关推荐

0 条评论