希望找到一种方法使函数返回(st)中的最大/最大偶数位,如果(st)没有偶数位,则函数返回-3作为结果。非常感谢所有/任何帮助。下面的代码是我的尝试,并没有得到我希望的结果,只是开始学习如何使用python。谢谢。我正在使用python 3.6
def maximumeven(st):
Result = 0
for i in (st):
if i.isdigit():
if (int(i) % 2 == 0):
Result = Result + int(max(i))
return Result
print(maximum("124A2"))
答案 0 :(得分:-1)
试试这段代码:。
def maximumeven(st):
Result = []
for i in (st):
if i.isdigit():
if (int(i) % 2 == 0):
Result.append(int(i))
if not len(Result):
Result = -3
return Result
func = maximumeven("124dsd89")
print(max(func) if type(func) is list else func)
输出:8
答案 1 :(得分:-2)
如果你真的只想要最大的偶数数字,那么因为只有五个单位数的偶数,我只是使用:
import math
from tkinter import*
C=Tk()
f=DoubleVar()
s=DoubleVar()
o=IntVar()
b=Radiobutton
e=Entry
c='c'
e(C,textvariable=f,justify=c).grid()
e(C,textvariable=s,justify=c).grid(row=0,column=1)
b(C,text='Add',variable=o,value=1).grid(row=2)
b(C,text='Subtract',variable=o,value=2).grid(column=1,row=2)
b(C,text='Multiply',variable=o,value=3).grid(row=3)
b(C,text='Divide',variable=o,value=4).grid(column=1,row=3)
b(C,text='Square',variable=o,value=5).grid(row=4)
b(C,text='Square root',variable=o,value=6).grid(column=1,row=4)
Button(C,text='Results',command=C.destroy,width=16).grid(row=7)
C.mainloop()
S=s.get()
O=o.get()
F=f.get()
if O==1:
R=F+S
if O==2:
R=F-S
if O==3:
R=F*S
if O==4:
R=F/S
if O==5:
R=math.pow(F,S)
if O==6:
R=F*(1/S)
print(R)
一种更有效的解决方案,只对字符串进行一次迭代,如果达到8则提前退出:
def maximumeven(st):
if "8" in st:
return 8
if "6" in st:
return 6
if "4" in st:
return 4
if "2" in st:
return 2
if "0" in st:
return 0
return -3
print(maximumeven("124A2")) #4
print(maximumeven("13579")) #-3
print(maximumeven("2468")) #8