Python基础第一课练习题

#第四题的理解有两种,所以给了两种解法。
def practice1(input):
    if input<=1:
        return 0
    result=[]
    for i in range(1,input+1):
        if i%3==0 and i%5==0:
            result.append(i)
    return result
def practice2(input):
    try:
        if len(input)>=3 and input[-3:-1]+input[-1]!='ing':
            return input+'ing'
        elif input[-3:-1]+input[-1]=='ing':
            return input+'ly'
        elif len(input<3):
            return input
    except:
        return 0
def practice3(input):
    input=str(input)
    if len(input)%2==0:
        middle=int(len(input)/2)
        pro=input[:middle]
        post=input[middle:]
    else:
        middle=int(len(input)/2)
        pro=input[:middle]
        post=input[middle+1:]
    if pro==post[::-1]:
        return True
    else:
        return False

此处假设每个输入的字符串里面只有一个not和good

def practice4one(input):
    current=0
    result=''
    notplace=input.find('not')
    badplace=input.find('bad')
    if badplace>notplace:
        result+=input.replace(input[notplace+4:badplace],'good')
    else:
        pass
    return result

此处假设每个输入中不止一个not和good

def practice4two(input):
    notdic=[]#找出not的位置,存入该字典
    baddic=[]#找出bad的位置,存入该字典
    for index in range(len(input)-2):
        if input[index:index+3]=='not':
            notdic.append(index)
        elif input[index:index+3]=='bad':
            baddic.append(index)
        else:
            pass
    while(len(baddic)!=0 and len(notdic)!=0):
        if notdic[0]<baddic[0]:
            str1=input[:notdic[0]+3]
            str2='good'
            str3=input[baddic[0]:]
            input=str1+str2+str3
            del notdic[0]
            del baddic[0]
        else:
            del baddic[0]
    return input
def practice6(input):
    first=input[0]
    exceptFirst=input[1:]
    afterReplace=exceptFirst.replace(first,"*")
    return first+afterReplace
def practice7(input):
    length=len(input)
    if length<2:
        return 0
    elif length==2:
        return input
    else:
        return input[0:2]+input[length-2:]
def prctice8():
    times=1
    highth=100.0
    while(True):
        highth/=2
        times+=1
        if times>6:
            break
    return highth
def practice9(start,end):
    if start>end:
        start,end=end,start
    else:
        pass
    if end<=1:
        return 0
    elif start<=1:
        start=1
    prime=[]
    for current in range(start+1,end):
        times=0
        for judgenumber in range(1,int(current/2)+1):
            if current%judgenumber==0:
                times+=1
            else:
                pass
            print(current,times)
        if times==1 or times==0:
            prime.append(current)
    return prime
已邀请:

ClownFish

赞同来自:


下午记得把题目写清,以及在代码中多加注释。这是好习惯,得有。

不要使用关键字或bifs作为标识符或参数,就是那种notebook里输入后变绿色粗体的字。比如input,

第四题,你的解法没问题,但可以有更简单的方法来判断是否是回文。

not和good那题,你想得很周到。做了假设。以及两种应对。

其它的没有问题。很好,都已经用函数封装 起来了。

要回复问题请先登录注册

返回顶部