3.3 Python3 基础 - 循环结构之循环嵌套

>>返回主目录


源码

# Author:PortosHan
# Datetime:2021/3/18 18:14
# Project:zbcf_python_lesson_project
import random
# 练习1:打印99乘法表(for和while相互嵌套)
"""
思路:首先要知道99乘法表的样子,找出其中的规律,其次分析出外循环和内循环的变量取值范围,最后分析出需要换行的地方
1*1=1
1*2=2 2*2=4
...   ...
1*9=9 2*9=18 ... 9*9=81
"""
# for循环嵌套
print('************************以下是for循环嵌套************************')
for i in range(1, 10):
    for j in range(1, i + 1):  # 注意每次i重新赋值后,j都从1开始
        print(j, '*', i, '=', i * j, end='\t')
    print()
# while循环嵌套
print('************************以下是while循环嵌套************************')
i = 1
while i < 10:
    j = 1  # 初始化内循环变量,因j每次都要从1开始,故j只能写在外循环内部与内循环平级
    while j < i + 1:
        print(j, '*', i, '=', i * j, end='\t')
        # print(f'{j} * {i} = {j * i}', end='\t')  # 另一种打印写法
        j += 1
    print()
    i += 1
# while嵌套for
print('*' * 30 + 'while嵌套for' + '*' * 30)
i = 1
while i < 10:
    for j in range(1, i + 1):
        print(j, '*', i, '=', i * j, end='\t')
    print()
    i += 1
# for嵌套while
print('************************for嵌套while************************')
for i in range(1, 10):
    j = 1
    while j < i + 1:
        print(j, '*', i, '=', i * j, end='\t')
        j += 1
    print()

# 练习2:完善:猜骰子大小游戏(循环和条件嵌套)
# 游戏规则:
# 1、可重复玩
# 2、只能输入“大”或“小”
# 3、知道当前游戏的局数
for i in range(1, 4):  # 重复玩多次,循环变量i可作为局数
    dice_no = random.randint(1, 6)  # 随机生成1~6的点数
    guess_no = input(f'第{i}局:骰盅落定,压大压小,买定离手:')

    # if guess_no == '大' or guess_no == '小':  # 可以直接使用此判断即可满足

    # 下列语法分析:if guess_no判断非空,and和or优先级区分不清的,可以添加小括号()增加可读性,not guess_no.isnumeric()判断非数字
    if guess_no and (guess_no == '大' or guess_no == '小') and not guess_no.isnumeric():
        if 1 <= dice_no <= 3:
            winner = '小'
            if guess_no == winner:
                print(f'恭喜您赢了!骰子点数是:{dice_no},买{winner}赢!')
            else:
                print(f'压错了,骰子点数是:{dice_no},买{winner}赢!')
        else:
            winner = '大'
            if guess_no == winner:
                print(f'恭喜您赢了!骰子点数是:{dice_no},买{winner}赢!')
            else:
                print(f'压错了,骰子点数是:{dice_no},买{winner}赢!')
    else:
        print('只能输入“大”或“小”!')

>>返回主目录

posted @ 2021-03-26 11:25  PortosHan  阅读(215)  评论(0编辑  收藏  举报