Python 3生成1-20个连续随机星号并重复100次的代码问题求助
解决你的Python星号生成问题
嘿,我来帮你排查代码里的问题啦~
首先看你写的代码,第二个for循环for y in a:这里出错了!因为a是random.randint(1,20)生成的整数,而for...in循环要求后面必须是一个可迭代对象(比如列表、字符串、range()生成的序列这类能逐个遍历的东西),整数没法被遍历,所以Python会直接报错。
给你两种简单的解决方案:
方案1:用字符串乘法(最简洁)
Python里字符串可以直接和整数相乘,实现重复效果,一行就能搞定连续星号的输出:
import random for _ in range(100): # 生成1-20之间的随机数 star_count = random.randint(1, 20) # 把星号重复star_count次,直接打印 print("*" * star_count)
这个方法会让每组星号在单独一行,完全符合你的需求。
方案2:修正嵌套循环(贴合你原本的思路)
如果你想保留嵌套循环的写法,只需要把for y in a改成for y in range(a),同时调整print的参数让星号连续输出:
import random for _ in range(100): star_count = random.randint(1, 20) # range(star_count)会生成0到star_count-1的序列,刚好循环star_count次 for _ in range(star_count): # end=""让print不自动换行,星号会连在一起 print("*", end="") # 每组星号打印完后换行,避免所有星号挤在一行 print()
以后记住哦:for...in循环的遍历对象必须是可迭代的,整数、浮点数这种单个值都不能直接放进去~
内容的提问来源于stack exchange,提问作者And
相关产品推荐
相关产品推荐

