首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据第一个用户输入有可变数量的用户输入

如何根据第一个用户输入有可变数量的用户输入
EN

Stack Overflow用户
提问于 2022-03-20 02:47:29
回答 3查看 222关注 0票数 0

我已经创建了一个计算学生平均水平的程序,我希望根据用户输入来创建输入,例如:如果用户键入5,它就会创建5个输入。

代码语言:javascript
复制
print('Average of students')

def student_average():
    while True:
        try:
            # I want to create inputs depending on the user's input in the following question:
            number_of_qualifications = int(input('What is the number of qualifications?: '))
            qualification_1 = float(input('What is the first qualification?: '))
            qualification_2 = float(input('What is the second qualification?: '))
            qualification_3 = float(input('What is the third qualification?: '))
            qualification_4 = float(input('What is the fourth qualification?: '))
            break
        except:
            print('This is not an option')
    sum = (qualification_1 + qualification_2 + qualification_3 + qualification_4)
    average = (sum / 4)
    print(average)

student_average()
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-03-20 02:51:36

你需要用一个循环。我已经删除了try/except,如果你愿意,你可以把它加回去。

代码语言:javascript
复制
def student_average():
    number_of_qualifications = int(input('What is the number of qualifications?: '))
    sumx = 0
    for _ in range(number_of_qualifications):
        sumx += float(input('What is the next qualification?: '))
    return sumx / number_of_qualifications

print(student_average())
票数 3
EN

Stack Overflow用户

发布于 2022-03-20 02:58:00

我已经修改了你的代码,所以除了尝试之外的功能被保留了下来。

代码语言:javascript
复制
def student_average():
    total, c = 0,0
    number_of_qualifications = int(input('What is the number of qualifications?: '))
    while True:
        try:
            # I want to create inputs depending on the user's input in the following question:
            total += float(input(f'{c+1} What is the qualification?: '))
            c += 1
            if c == number_of_qualifications:
                break
        except:
            print('This is not an option')
    average = (total / number_of_qualifications)
    print(average)
    
print('Average of students')
student_average()

输出:

代码语言:javascript
复制
Average of students
What is the number of qualifications?:  3
1 What is the qualification?:  4
2 What is the qualification?:  5
3 What is the qualification?:  a
This is not an option
3 What is the qualification?:  6
5.0
票数 0
EN

Stack Overflow用户

发布于 2022-03-20 13:03:24

请不要使用"sum“作为变量,因为它是Python保留的单词。如果以前使用过它,则必须重新启动内核。

代码语言:javascript
复制
def student_average():
    cnt = 1
    total_list = []
    number_of_qualifications = int(input('What is the number of qualifications?: '))
    while len(total_list) < number_of_qualifications:
        try:
            # I want to create inputs depending on the user's input in the following question:
            total_list.append(float(input(f'{cnt}. What is the qualification?: ')))
            cnt += 1
        except:
            print('This is not an option')
    return (sum(total_list) / number_of_qualifications)
    
print('Average of students =', student_average())

输出

代码语言:javascript
复制
What is the number of qualifications?:  5
1. What is the qualification?:  10
2. What is the qualification?:  20
3. What is the qualification?:  30
4. What is the qualification?:  aa
This is not an option
4. What is the qualification?:  40
5. What is the qualification?:  50
Average of students = 30.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71543664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档