python-3.x - 使用 for 循环输出与星号相同数量的行
问题描述
我正在图书馆学习 Python 课程,我是编码的初学者,但我在完成这项作业时遇到了麻烦。使用 for 循环,它要求我们“编写一个读取 n 的程序,其中 n 是从 2 到 10 的数字。程序应该输出 n 行星号,其中星号的数量等于行号。 " 此外,如果 n = "stop",它应该打印 "No stars!"
例如,其中 n = 4:
*
**
***
****
我知道如何征求意见。我可以让它打印星号。我只是不知道如何制作它,以便它只打印用户输入的行数和星号。我希望我描述得很好。我也不能让它打印“没有星星!” 如果我输入“停止”。
n = input ("Enter a number between 2 and 10: ")
for n in range (1, 11):
print (n * "*")
if n == "stop":
print ("No stars!")
解决方案
我认为您遇到的主要误解是 for 循环。
当您在 y 中执行 for x 时,它将获取 y 的每个部分并运行 for 循环的主体,并将 y 的该部分分配给 x。在您的情况下,它是一个范围,因此范围的每个“部分”都是一个数字,它正在计算范围的上限。
因此,对于循环 n = 1 的每次迭代,运行主体,n = 2,运行主体,......等等。
所以要解决这个问题,使范围的上限等于 n+1。
n = input ("Enter a number between 2 and 10: ")
if n == "stop":
print("No starts!")
try:
n = int(n)
if n>=2 and n<=10:
for x in range (1, n+1):
print (x * "*")
except:
print("invalid input")
推荐阅读
- c++ - C++:尝试在单个 for 循环中使用 getlline() 填充多个向量时,向量下标超出范围
- javascript - Discord.js - 尝试等待异步进程并允许递归调用包装器
- windows - 如何在 aws cloud vm 中的 windows server 2016 中运行 linux 容器
- javascript - 如何通过点击 JavaScript 输入文本字段内的十字按钮来刷新我的实时搜索?
- php - 我们如何嵌入 TripAdvisor 评论?
- python - 树莓派:使用 Sense Hat 传感器,如何检测加速度?
- android - 在 CameraImage 流中使用 websocket 时,相机渲染缓慢
- pyspark - Pyspark Phoenix 集成在 oozie 工作流程中失败
- php - 如何计算两个 DateInterval 对象的总和
- r - SMOTE in r 显着减少样本量