通过封装程序的每个步骤,您可以消除所有三个功能需求。我们将让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语句。

python请输入_不断提示用户输入Python相关推荐

  1. 编写一个python程序判断用户输入的8位银行卡_用Python编写的程序,提示用户输入一个由7位数字组成的帐号?...

    我在上一门Python入门课程,但有点困在作业上.任何建议或资源将不胜感激!在 问题是: 用Python编写一个程序,提示用户输入由7位数字组成的帐号.在 从用户处获取该帐号后,验证该帐号是否有效.您 ...

  2. python之矩阵相加:提示用户输入矩阵的行数n,再提示用户输入矩阵的列数m,接下来,提示用户输入 2*n*m 个数字(每次输入 一个数字)。输出 C=A+B。

    代码: def func40():n = int(input('Please input the number of rows:'))m = int(input('Please input the n ...

  3. scanf 接收 空格 输入_当接受用户输入的含有空格的字符串时,应使用()函数。...

    学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是按分数的高低排列学生的记录,低分在前. 注意:部分源程序给出如下. 请勿改动主函数main和其 ...

  4. 用java提示用户输入学生个数_编写程序,提示用户输入一个数N,然后显示1~N的所有偶数平方值,求大神看看我写的程序哪里有问题。。...

    点击查看编写程序,提示用户输入一个数N,然后显示1~N的所有偶数平方值,求大神看看我写的程序哪里有问题..具体信息 答: 修改后的程序:#includeint main(){int n,a,b;pri ...

  5. python练习题:使用循环完成剪刀石头布游戏,提示用户输入要出的拳 :石头(1)/剪刀(2)/布(3)/退出(4)电脑随机出拳比较胜负,显示用户胜、负还是平局

    """ 使用循环完成剪刀石头布游戏,提示用户输入要出的拳 :石头(1)/剪刀(2)/布(3)/退出(4) 电脑随机出拳比较胜负,显示用户胜.负还是平局.运行如下图所示:提 ...

  6. python用于获取用户输入的函数是_在Python函数中,用于获取用户输入的是( )...

    在Python函数中,用于获取用户输入的是( ) 答:input() 中国大学MOOC:\"骨质疏松症的特征是是以骨量减少.骨的微观结构退化,致使发生的严重后果是\"; 答:\&q ...

  7. Java黑皮书课后题第6章:*6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数。编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数

    6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数.编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数 题目 题目描述 破题 代码 运行示例 题目 ...

  8. Java黑皮书课后题第8章:**8.19(模式识别:四个连续相等的数)编写下面的方法,测试一个二维数组是否有四个连续相等的数字(水平、垂直、对角线方向都可以)。编写一个测试程序,提示用户输入一个数组

    **8.19(模式识别:四个连续相等的数)编写下面的方法,测试一个二维数组是否有四个连续相等的数字(水平.垂直.对角线方向都可以).编写一个测试程序,提示用户输入一个数组 题目 题目描述与运行实例 破 ...

  9. Java黑皮书课后题第7章:**7.34(对字符串中的字符排序)使用以下方法头编写一个方法,返回一个排序好的字符串。编写一个测试程序,提示用户输入一个字符串,显示排序好的字符串

    **7.34(对字符串中的字符排序)使用以下方法头编写一个方法,返回一个排序好的字符串.编写一个测试程序,提示用户输入一个字符串,显示排序好的字符串 题目 题目描述 破题 代码 运行实例 题目 题目描 ...

最新文章

  1. 【opencv】17.提取RBG各种颜色c++代码
  2. 初识python代码
  3. 为什么建议使用Linux?从“白嫖”到精通,只需要这几步
  4. 从网络IO看高性能框架
  5. 程序员如何拓展知识面 推荐几个技术公众号
  6. LeetCode 64 最小路径和
  7. linux挂载硬盘_Linux把内存挂载成硬盘提高读写速度-内存虚拟盘
  8. dos命令行设置网络优先级_网络工程师必知的Linux命令,精品!
  9. js过滤时间方法,几分钟前,1小时前
  10. Python中的X[:,0]和X[:,1]
  11. x光肺部分割数据集_一个超小型分割检测数据集
  12. 氚云 表单前端代码-提交机制
  13. 那些堪称软件神器的工具或网站
  14. 移植 μC/OS-III 到 STM32
  15. 计算机内存与速度,内存容量与读写速度
  16. beautifulsoup菜鸟教程
  17. Apollo星火计划学习笔记|L1 Apollo平台安装(2021年9月更新)
  18. Redis基本数据类型String——数据结构解析
  19. robocup3d 发布比赛版本
  20. matlab最基础教程(二):变量类型与赋值

热门文章

  1. Kafka生产者发送消息的三种方式
  2. JavaScript强化教程——JavaScript Math(算数) 对象
  3. 组件接口(API)设计指南-文件夹
  4. 去掉easyui datagrid内部虚线的方式。
  5. Ubuntu 中启用 root 帐号
  6. Windows平台Eclipse配置Maven
  7. [转载红鱼儿]kbmmw 开发点滴:Authorization failed.
  8. CSS之expression
  9. 腾达fh365虚拟服务器,腾达(Tenda)FH365路由器怎么设置?
  10. android 代码 日历 重复事件设置,日历重复/重复事件 - 最佳存储方法