python请输入_不断提示用户输入Python

通过封装程序的每个步骤,您可以消除所有三个功能需求。我们将让main控制循环,并通过将数据传入和传出函数调用来控制流,而不是将循环放在函数内部。

让我们重新设计一下input_numbers()函数。def get_input_number():

num = int(raw_input("Enter a positive integer no greater than 42 "))

if num <= 0 or num > 42:

print "Invalid input. Try again "

get_input_number()

else:

return num

因此,与其让输入的数字控制循环以及输入处理和验证,不如让它按照它的名称所暗示的那样:它请求输入,验证它,然后,如果它是好的,它将值返回给调用者,但是如果它是坏的,它会写一条消息,然后再次调用自己给用户可以输入好的输入。

我们将设置的下一个函数直接来自您的需求列表。从用户输入的所有数字中,我们需要找到最大的一个。仅从语言上,我们就可以确定我们正在查找一组数字,因此,这是一个列出列表的好地方。假设我们将所有输入的用户存储在一个列表中,然后我们可以将该列表传递给一个函数并对其执行操作,就像这样。def get_greatest_number(input_list):

highest = input_list[0]

for i in input_list:

if i > highest:

highest = i

return highest

我们将列表的第一个元素设置为变量highest,然后根据该初始值检查列表中的所有其他元素。如果我们找到一个更大的变量,然后将highest变量重新分配给更大的元素。一旦我们对列表中的每个元素都这样做了,highest中的数字现在将是,就是,highest中的数字,所以,我们将它返回到主程序。

同样,我们也可以找到最小的。def get_smallest_number(input_list):

smallest = input_list[0]

for i in input_list:

if i < smallest:

smallest = i

return smallest

最后,我们到达主回路。这里我们声明一个空列表,number_list来存储所有的数字。我们用它的和作为循环条件。if __name__ == '__main__':

number_list = []

while sum(number_list) < 179:

number_list.append(get_input_number())

在循环的主体中,我们调用get_input_number()并将其结果附加到我们创建的列表中。一旦列表中的数字之和超过179,while循环将退出,我们最终可以向用户显示结果。print

print '-------------------------'

print 'total of numbers entered: %d' % sum(number_list)

print 'greatest number entered: %d' % get_greatest_number(number_list)

print 'smallest number entered: %d' % get_smallest_number(number_list)

在这里,我们可以生成get_greatest_number和get_smallest_number,并将数字列表作为参数提供给它们。它们将循环遍历列表,然后将适当的值返回给print语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值