如何让Python的print语句输出的所有内容都显示在同一行?
问题原因
你当前代码每次循环都单独调用print()打印单个字符,print()默认会在输出内容末尾追加换行符,所以最终是分行输出的单个字符,而不是完整的拼接字符串。同时原有代码的随机索引范围从1开始,会漏掉字符集里的第一个字符a,可以同步修正。
修改方案
你可以先定义一个空字符串变量,循环过程中把每次生成的随机字符追加到这个变量里,全部生成完成后一次性打印即可,修改后的代码如下:
import random import time all_chars = "abcdefghijklmnopqrstuvwxyz1234567890" result = "" i = 0 while i < 6: time.sleep(1) # 修正索引范围为0~35,覆盖全部字符 result += all_chars[random.randint(0,35)] i += 1 print(f"<strong>{result}</strong>")
如果不需要保留1秒的生成间隔,直接删除time.sleep(1)即可。
可选优化写法
Python标准库random提供了更便捷的批量随机选取方法choices(),可以替代循环写法,代码更简洁:
import random all_chars = "abcdefghijklmnopqrstuvwxyz1234567890" result = ''.join(random.choices(all_chars, k=6)) print(f"<strong>{result}</strong>")
内容的提问来源于stack exchange,提问作者Synthx
相关产品推荐
相关产品推荐

