当前位置: 首页 > 知识库问答 >
问题:

三角系列数字的用户输入

淳于玺
2023-03-14
   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=无时无限循环,那么这大概就是n=“”。。。但我不知道怎么做

任何帮助都将不胜感激。

这是Python编码

使用Seons解决方案时出错

错误!请输入数字或留空。回溯(最近一次调用):文件"",第15行,get_valid_user_inputValueError:以10为底的int()的无效文字:'a'

在处理上述异常时,发生了另一个异常:

Traceback(最近一次调用): File"", line 20, in File"", line 18, inget_valid_user_inputNameError: name'get_user_input'不是

共有1个答案

弓举
2023-03-14

我们从稍微修改my\u func开始,如果n

  • 要么他什么都不输入(空字符串),在这种情况下,我们假设他想无限期循环并将n设置为-1
  • 或者他输入了其他内容,在这种情况下,我们假设他输入了一个整数。然后我们使用int(user_input)将此值从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\u valid\u user\u 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
 类似资料:
  • 任务是“编写一个程序,为用户输入的整数显示用户指示的倍数。” 我想我不需要一个完全直接的答案(尽管我确实想知道要使用的方法/公式),因为我想把这个作为一个学习经验,以便自己完成任务并从中学习。我真的想知道的过程和使用的方法,以及找到一个公式。: 我真的不确定如何编写一个代码,显示一个用户输入的整数的用户输入的数字。最难的部分似乎是编写循环公式。不知道从哪里开始。 到目前为止,我已经: 我真的不确定

  • 问题内容: 我试图用来获取数字列表,但是带有代码 输入给出的结果为,因此我想它会将输入解释为字符串。有什么直接方法可以列出清单吗?也许我可以用来提取整数,但如果可能的话,我宁愿使用更的解决方案。 问题答案: 在Python 3.x中,使用它。 例

  • 问题内容: 我正在尝试找出如何创建输入验证的方法,在该方法中,您不能两次输入相同的数字,而且不能在数字范围内输入,除非它是整数,否则无法输入任何内容。我目前正在创建彩票程序,不确定如何执行此操作。任何帮助将非常感激。我的数字范围验证有效,而其他两个验证无效。我尝试了非重复号码验证,但我不确定如何执行仅数字验证。有人可以告诉我如何构建此结构。 此方法在我的Player类中 问题答案: 如下进行: 运

  • 该代码基于用户输入的列表。然后显示列表并要求输入y/n。如果是,它会显示回车,并允许您输入用逗号分隔的数字。这很好。 然而,在当循环之后,它会启动我还不明白的collections.frequency。只有当数字像12一样一个接一个地输入时,它才起作用,然后点击输入更多的数字,直到按下n。这打破了循环。并显示重复的列表。 然而,如果一次将所有数字输入到一行中,如12、23、55等,则不起作用。它不

  • 我正在做一个由两部分组成的任务,第一部分是创建一个由3行4列组成的数组,然后让用户输入4个数字组成第一行的第一列。因此,如果用户输入1,2,3,4,那么数组应该打印出来:(0对于任务的第二部分,为空。 到目前为止,这就是我所拥有的,但我只使用Java几天,我确信我没有清楚地看到我的错误。我真的很感谢任何帮助我做错了什么。 这是我的代码: 至于任务的第二部分,第二行和第三行需要是该列第一行输入的任何

  • 问题内容: 我有这样的标记: 我希望在用户在第二个输入中意外键入字母时显示跨度。简单吧?作为(可能)相关的问题,当用户移动第一滑块输入时,第二输入中的值消失。为什么?如果我从标记中删除,则不会发生这种情况。 明确说明:我希望用户在键入工具提示时立即看到错误,而无需执行任何“提交”操作。(我不希望实际上根本不需要使用该元素,但是所有相关的演示似乎都需要它。) http://jsfiddle.net/