Python:用于在字符串中查找最大偶数的函数

时间:2017-11-10 04:04:17

标签: python function

希望找到一种方法使函数返回(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"))

2 个答案:

答案 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