Python如何实现while循环内星号随弹珠数量逐次递减显示
Python弹珠计数星号递减实现方案
你现有代码中星号固定输出10个的原因是print(marble_dots[:10])写死了切片长度,只需要将切片终止值替换为当前剩余弹珠的变量marbles即可实现同步递减效果。
修改后的完整代码
#!/usr/bin/env python3 marbles = 10 # 初始持有10颗弹珠 marble_dots = "**********" # 星号对应10颗弹珠 while (marbles > 0): # 切片长度随当前弹珠数动态变化 print(marble_dots[:marbles]) # 输出剩余弹珠数,需要将数字类型的marbles转为字符串 print("你还有 " + str(marbles) + " 颗弹珠。") if (marbles < 4): print("警告:你的弹珠快用完了!") # 等价于 marbles = marbles - 1,每次循环减少1颗弹珠 marbles -= 1 # 输出空行分隔每次循环的内容 print("")
更灵活的可选写法
你也可以不用提前定义固定长度的星号字符串,直接在输出时动态生成对应数量的星号,哪怕后续修改初始弹珠数也不用调整星号字符串长度:
# 把print(marble_dots[:marbles])替换为以下写法即可 print('*' * marbles)
内容的提问来源于stack exchange,提问作者jack
相关产品推荐
相关产品推荐

