Python 查找用户输入的最小值和最大值

Python 查找用户输入的最小值和最大值,python,python-3.x,Python,Python 3.x,我正在学习Python,在试图找出用户编号输入的最小值和最大值时,我似乎无法理解它 count = 0 x = [] while(True): x = input('Enter a Number: ') high = max(x) low = min(x) if(x.isdigit()): count += 1 else: print("Your Highest Number is: " + high) pr

我正在学习Python,在试图找出用户编号输入的最小值和最大值时,我似乎无法理解它

count = 0
x = []
while(True):
    x = input('Enter a Number: ')
    high = max(x)
    low = min(x)
    if(x.isdigit()):
        count += 1
    else:
        print("Your Highest Number is: " + high)
        print("Your Lowest Number is: " + low)
        break

将程序分成可管理的小块,从一个简单的函数开始获取数字

def input_number(prompt="Enter A Number:"):
    while True:
         try: return int(input(prompt))
         except ValueError:
             if not input: return None #user is done
             else: print("That's not an integer!")
然后编写一个函数,继续从用户那里获取数字,直到用户输入完数字

def get_minmax_numbers(prompt="Enter A Number: "):
   maxN = None
   minN = None
   tmp = input_number(prompt)
   while tmp is not None: #keep asking until the user enters nothing
        maxN = tmp if maxN is None else max(tmp,maxN)
        minN = tmp if minN is None else min(tmp,minN)
        tmp = input_number(prompt) # get next number
   return minN, maxN
然后把它们放在一起

 print("Enter Nothing when you are finished!")
 min_and_max = get_numbers()
 print("You entered Min of {0} and Max of {1}".format(*min_and_max)

将程序分成可管理的小块,从一个简单的函数开始获取数字

def input_number(prompt="Enter A Number:"):
    while True:
         try: return int(input(prompt))
         except ValueError:
             if not input: return None #user is done
             else: print("That's not an integer!")
然后编写一个函数,继续从用户那里获取数字,直到用户输入完数字

def get_minmax_numbers(prompt="Enter A Number: "):
   maxN = None
   minN = None
   tmp = input_number(prompt)
   while tmp is not None: #keep asking until the user enters nothing
        maxN = tmp if maxN is None else max(tmp,maxN)
        minN = tmp if minN is None else min(tmp,minN)
        tmp = input_number(prompt) # get next number
   return minN, maxN
然后把它们放在一起

 print("Enter Nothing when you are finished!")
 min_and_max = get_numbers()
 print("You entered Min of {0} and Max of {1}".format(*min_and_max)
输出:

Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux

enter values seperated by space 20 1 55 90 44
1
90
输出:

Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux

enter values seperated by space 20 1 55 90 44
1
90

x
是一个列表,若要将项目附加到列表中,必须在列表上调用
append
方法,而不是直接将项目分配给列表,这将使用该项目覆盖列表

代码:


x
是一个列表,若要将项目附加到列表中,必须在列表上调用
append
方法,而不是直接将项目分配给列表,这将使用该项目覆盖列表

代码:


能否提供典型的用户输入和相应的预期输出?目前正在发生的事情对您不起作用吗?旁注:Python不要求将条件/循环结构包装在参数中,除非它们解决了优先级问题,否则不要使用它们<代码>while True:比
更干净/更具Pythonic;while(True):
如果x.isdigit():
同样比
如果(x.isdigit()):
好。您能提供一个典型的用户输入和相应的预期输出吗?目前正在发生的事情对您不起作用吗?旁注:Python不要求将条件/循环结构包装在参数中,除非它们解决了优先级问题,否则不要使用它们<代码>while True:比
更干净/更具python风格,while(True):
如果x.isdigit():
同样比
如果(x.isdigit()):
好。他正在使用python3。。。原始输入在中不起作用python3@JoranBeasley完成!他正在使用蟒蛇3。。。原始输入在中不起作用python3@JoranBeasley完成!