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():
大的