Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我在这里得到了不同的最大值和最小值_Python_Python 3.x_List - Fatal编程技术网

Python 我在这里得到了不同的最大值和最小值

Python 我在这里得到了不同的最大值和最小值,python,python-3.x,list,Python,Python 3.x,List,它是一个程序,反复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字 自定义输入如下所示: 7 2. 11 轻弹 10 4. 完成 输出: 无效输入 最大值为10 最小值为4 预期输出: 无效输入 最大值为11 最小值为2 a=list() while True: sval=input() if sval == "done": break try: value=int(sval) a.a

它是一个程序,反复提示用户输入整数,直到用户输入“完成”。输入“完成”后,打印出最大和最小的数字

自定义输入如下所示:

7
2.
11
轻弹
10
4.
完成
输出:

无效输入

最大值为10

最小值为4

预期输出:

无效输入

最大值为11

最小值为2

a=list()
while True:
    sval=input()
    if sval == "done":
        break    
    try:
        value=int(sval)
        a.append(value) 
    except:
        print("Invlid")
        continue



    def sml():
        val=a[0]
        for i in range(len(a)):
            if a[i]<val:
                smalles=a[i]
        print("Minimum is",smalles)

    def lge():
        val=a[0]
        for i in range(len(a)):
            if a[i]>val:
                larges=a[i]
        print("Maximum is",larges)

lge()
sml()
a=list()
尽管如此:
sval=输入()
如果sval==“完成”:
打破
尝试:
值=int(sval)
a、 附加(值)
除:
打印(“Invlid”)
持续
def sml():
val=a[0]
对于范围内的i(len(a)):
如果是[i]val:
larges=a[i]
打印(“最大值为”,最大值)
lge()
sml()

添加到数组后,您可以在之前找到它,而不是查找最大值和最小值。这将减少每次迭代数组以找到最大值和最小值的成本

a=list()
max_, min_ = float('-inf'), float('inf')
while True:
    sval=input()
    if sval == "done":
        break
    try:
        value = int(sval)
        if value > max_:
            max_ = value
        elif value < min_:
            min_ = value
        a.append(value)
    except:
        print("Invalid")
        continue

print("Maximum is", max_)
print("Minimum is", min_)
a=list()
最大值,最小值=浮点('-inf'),浮点('inf'))
尽管如此:
sval=输入()
如果sval==“完成”:
打破
尝试:
值=int(sval)
如果值>最大值:
最大值
elif值<最小值:
最小值
a、 附加(值)
除:
打印(“无效”)
持续
打印(“最大值为”,最大值为)
打印(“最小值为”,最小值)

添加到数组后,您可以在之前找到它,而不是查找最大值和最小值。这将减少每次迭代数组以找到最大值和最小值的成本

a=list()
max_, min_ = float('-inf'), float('inf')
while True:
    sval=input()
    if sval == "done":
        break
    try:
        value = int(sval)
        if value > max_:
            max_ = value
        elif value < min_:
            min_ = value
        a.append(value)
    except:
        print("Invalid")
        continue

print("Maximum is", max_)
print("Minimum is", min_)
a=list()
最大值,最小值=浮点('-inf'),浮点('inf'))
尽管如此:
sval=输入()
如果sval==“完成”:
打破
尝试:
值=int(sval)
如果值>最大值:
最大值
elif值<最小值:
最小值
a、 附加(值)
除:
打印(“无效”)
持续
打印(“最大值为”,最大值为)
打印(“最小值为”,最小值)
您的代码有问题
  • 为什么函数处于
    循环中
  • 每次当你发现小的和大的时候,你只是在和第一个值进行比较
解决方案 下面是您代码中可能更改的最小答案

a=list()
尽管如此:
sval=输入()
如果sval==“完成”:
打破
尝试:
值=int(sval)
a、 附加(值)
除:
打印(“Invlid”)
持续
def sml():
smalles=a[0]
对于范围内的i(len(a)):
如果a[i]变大:
larges=a[i]
打印(“最大值为”,最大值)
lge()
sml()
您的代码有问题
  • 为什么函数处于
    循环中
  • 每次当你发现小的和大的时候,你只是在和第一个值进行比较
解决方案 下面是您代码中可能更改的最小答案

a=list()
尽管如此:
sval=输入()
如果sval==“完成”:
打破
尝试:
值=int(sval)
a、 附加(值)
除:
打印(“Invlid”)
持续
def sml():
smalles=a[0]
对于范围内的i(len(a)):
如果a[i]变大:
larges=a[i]
打印(“最大值为”,最大值)
lge()
sml()
在这些循环中:

        val=a[0]
        for i in range(len(a)):
            if a[i]>val:
                larges=a[i]
您有两个值,
val
最大值
,而实际上您只需要一个(
最大值
)。找到一个最大值的想法是,您希望与迄今为止找到的最大值进行比较,并在每次找到一个更大的值时不断更新它

编写此代码的较短方法是:

a = []
while True:
    val = input()
    if val == "done":
        break
    try:
        a.append(int(val))
    except ValueError:
        print("Invalid")

print(max(a))
print(min(a))
或者,如果不允许您使用
max
min
功能,您可以在运行时简单地维护
最大的
最小的
,而不是保留一个数组:

largest = None
smallest = None
while True:
    val = input()
    if val == "done":
        break
    try:
        num = int(val)
    except ValueError:
        print("Invalid")
        continue
    if (largest, smallest) == (None, None):
        largest, smallest = num, num
    if largest < num:
        largest = num
    if smallest > num:
        smallest = num

print(largest)
print(smallest)
max=None
最小=无
尽管如此:
val=输入()
如果val==“完成”:
打破
尝试:
num=int(val)
除值错误外:
打印(“无效”)
持续
如果(最大,最小)=(无,无):
最大的,最小的=num,num
如果最大值数值:
最小=num
打印(最大)
打印(最小)
在这些循环中:

        val=a[0]
        for i in range(len(a)):
            if a[i]>val:
                larges=a[i]
您有两个值,
val
最大值
,而实际上您只需要一个(
最大值
)。找到一个最大值的想法是,您希望与迄今为止找到的最大值进行比较,并在每次找到一个更大的值时不断更新它

编写此代码的较短方法是:

a = []
while True:
    val = input()
    if val == "done":
        break
    try:
        a.append(int(val))
    except ValueError:
        print("Invalid")

print(max(a))
print(min(a))
或者,如果不允许您使用
max
min
功能,您可以在运行时简单地维护
最大的
最小的
,而不是保留一个数组:

largest = None
smallest = None
while True:
    val = input()
    if val == "done":
        break
    try:
        num = int(val)
    except ValueError:
        print("Invalid")
        continue
    if (largest, smallest) == (None, None):
        largest, smallest = num, num
    if largest < num:
        largest = num
    if smallest > num:
        smallest = num

print(largest)
print(smallest)
max=None
最小=无
尽管如此:
val=输入()
如果val==“完成”:
打破
尝试:
num=int(val)
除值错误外:
打印(“无效”)
持续
如果(最大,最小)=(无,无):
最大的,最小的=num,num
如果最大值数值:
最小=num
打印(最大)
打印(最小)

在每次迭代中,您都要与列表的第一个元素进行比较,即val(val=a[0]) 并且不更新val。 修改

代码
a=list()
尽管如此:
sval=输入()
如果sval==“完成”:
打破
尝试:
值=int(sval)
a、 附加(值)
打印(“附加”)
除:
打印(“Invlid”)
持续
def sml():
印刷品(a)
smalles=a[0]
对于范围内的i(len(a)):
如果smalles>a[i]:
打印(a[i],end=”“)
smalles=a[i]
打印()
打印(“最小值为”,smalles)
def lge():
大的