如何实现输入数字生成对应数量的#?现有代码输出数量不符问题
问题分析
你的代码核心问题出在循环条件和冗余的total变量上:
- 初始时
hashtag=1,total = number * hashtag本质就是number(1乘任何数等于自身) - 循环条件
hashtag != total会在hashtag等于输入数字时直接终止循环,比如输入4时,仅会在hashtag=1、2、3时执行打印,少了最后一次循环。
解决方案
方案1:修正while循环逻辑
把循环条件改为hashtag <= number,让hashtag从1到输入数字的每一个值都触发打印:
number = int(input("Input the number of # you want.")) hashtag = 1 while hashtag <= number: print("#") hashtag = hashtag + 1
方案2:用for循环更简洁(推荐)
Python的for循环搭配range()函数天生适合这种固定次数的重复操作,代码可读性更强:
number = int(input("Input the number of # you want.")) for _ in range(number): print("#")
range(number)会生成包含number个元素的序列,循环会严格执行对应次数,完美匹配需求。
方案3:一行代码直接生成结果
如果不需要逐行打印,想一次性输出所有#,可以利用Python字符串乘法特性:
number = int(input("Input the number of # you want.")) print("#" * number)
"#" * 4会直接生成字符串"####",打印后就是对应数量的#。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

