You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 07:48:16