python - 三角系列数字的用户输入
问题描述
def my_func(c=1, n=None):
while True:
if c > n:
# if counter > number of iterations required
break
a = int(c * (c + 1)/2)
yield a
c += 1
my_object = my_func(n=5)
while True:
try:
print(next(my_object))
except StopIteration:
print("End of Iteration")
break
嗨,我有以下内容,基本上它打印三角形数字,我想要做的是设置 n = 用户键盘输入,基本上用户输入一个迭代,它打印出输入迭代次数的三角形序列。
如果我想在 n=None 时无限循环,大概是在 n="" ...但我不知道该怎么做
任何帮助,将不胜感激。
这是在python编码中
我在使用 Seons 解决方案时遇到的错误
错误!请输入一个数字或留空。回溯(最后一次调用):文件“”,第 15 行,在 get_valid_user_input ValueError:int() 的无效文字,基数为 10:'a'
在处理上述异常的过程中,又出现了一个异常:
回溯(最后一次调用):文件“”,第 20 行,在文件“”中,第 18 行,在 get_valid_user_input NameError: name 'get_user_input' is not
解决方案
我们从稍微改变 my_func 开始,如果 n<=-1,我们将无限循环。然后我们接受用户输入:
- 要么他什么都不输入(一个空字符串),在这种情况下,我们假设他想无限循环并将 n 设置为 -1
- 或者他输入了其他内容,在这种情况下,我们假设他输入了一个整数。然后我们用
int(user_input)
这个值将它从 a 转换str
为 andint
,并将它用作 my_func 的 n 参数
def my_func(c=1, n=-1):
while True:
if n>-1 and c > n:
# if counter > number of iterations required
break
a = int(c * (c + 1)/2)
yield a
c += 1
user_input = input("Enter a number, or leave blank for infinite loop: ")
if user_input == "":
n = -1
else:
n = int(user_input)
my_object = my_func(n=n)
while True:
try:
print(next(my_object))
except StopIteration:
print("End of Iteration")
break
下面给出了一个稍微复杂一点的版本,它确保用户输入是有效的。我们递归调用 get_valid_user_input 函数,直到用户输入为空字符串或整数。
def my_func(c=1, n=-1):
while True:
if n>-1 and c > n:
# if counter > number of iterations required
break
a = int(c * (c + 1)/2)
yield a
c += 1
def get_valid_user_input():
user_input = input("Enter a number, or leave blank for infinite loop: ")
if user_input == "":
return -1
try:
return int(user_input)
except ValueError:
print("Error! Please enter a number or leave blank.")
return get_valid_user_input()
my_object = my_func(n=get_valid_user_input())
while True:
try:
print(next(my_object))
except StopIteration:
print("End of Iteration")
break
推荐阅读
- ruby-on-rails - Tailwind 2.1 + Rails 6 + React 设置期间的错误
- python - 类型错误,我该如何解决这个错误,在图片中我写了我的具体问题
- bash - 我无法让我的 if 语句起作用。学习编写 bash 代码并进行了研究,但看不到错误
- flutter - 在 Dart / Flutter 的 Firestore 查询中添加限制时,不会调用 Stream Listen
- python - 当我尝试运行 pip install qd 时,我看到以下错误:
- asp.net-core - 使用 IdentityModel.AspNetCore 时的授权标头
- javascript - 内容安全政策大幅放松;仍然出现错误
- javascript - 如何使用 websocket 在具有相同令牌的用户之间发送消息?
- python - 交互式经纪商 TWS API 错误消息
- node.js - 在 docker-compose 中更改服务名称无法由 node-js 应用程序解析