栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python控制结构(二)答案(python控制结构(二) while循环分支入门)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python控制结构(二)答案(python控制结构(二) while循环分支入门)

第1关:分支结构基础实训

#第一题
for temp in [-280, -100, 0, 20, 120, 200]:
    #请在下面编写代码
    # ********** Begin ********** #
    if temp<-213.15:
        F=None
    else:
        F=9*temp/5+32
    # ********** End ********** #
    #请不要修改下面的代码
    print_(F)
#第二题
for number in [-101.23, -3.14, 0, 12.55, 1908]:
    # 请在下面编写代码
    # ********** Begin ********** #
    if number<0:
        number=-number
    # ********** End ********** #
    # 请不要修改下面的代码
    print_(number)

print('n***********************n')
#第三题
for (num1, num2) in [(12, 34), (-6, -7),(-12, 23), (-273, 0), (0, 199)]:
    # 请在下面编写代码
    # ********** Begin ********** #
    if num1>num2:
        temp=num1
        num1=num2
        num2=temp
    # ********** End ********** #    
    # 请不要修改下面的代码
    print(num1, '  ', num2)


print('n***********************n')
#第四题

for (num1, num2, num3) in [(-231, -321, 123), (100, 0, -99), (-980, -1002, -1), (6,1,2017)]:
    # 请在下面编写代码
    # ********** Begin ********** #
    if num1>num2:
        temp=num1
        num1=num2
        num2=temp
    if num1>num3:
        temp=num1
        num1=num3
        num3=temp
    if num2>num3:
        temp=num2
        num2=num3
        num3=temp
    # ********** End ********** #    
    # 请不要修改下面的代码
    print(num1, num2, num3)


print('n***********************n')
在这里插入代码片#第五题

for (num1, num2) in [(10, 5), (12,34), (89,0), (-100, 23), (789, -123)]:
    # 请在下面编写代码
    # ********** Begin ********** #
    if num2==0:
        result=None
    else:
        result=num1/num2
    # ********** End ********** #    
    # 请不要修改下面的代码
    print_(result)


print('n***********************n')
#第六题

for (a, b, c) in [(1,2,1), (1,-2,1), (1,2,-3), (12, 34, 56), (78, 89, 100)]:
    # 请在下面编写代码
    # ********** Begin ********** #
    if pow(b,2)-4*a*c>=0:
        root1=(-b+pow(pow(b,2)-4*a*c,0.5))/(2*a)
        root2=(-b-pow(pow(b,2)-4*a*c,0.5))/(2*a)
    else:
        root1=None
        root2=None
    # ********** End ********** #    
    # 请不要修改下面的代码
    print(root1, root2)


print('n***********************n')
#第七题

for x in [-9, -8, -7, -6, -5, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]:
    # 请在下面编写代码
    # ********** Begin ********** #
    if x>6:
        fx=4*x+1
    elif x>4:
        fx=3*x-4
    elif x>=2:
        fx=pow(x,3)
    elif x>-2:
        fx=abs(x)
    elif x>=-6:
        fx=pow(x,2)
    elif x>=-8:
        fx=x+3
    else :
        fx=x-2
    # ********** End ********** #    
    # 请不要修改下面的代码
    print_(fx)

第2关:循环结构基础实训

#第一题

#请在下面编写代码
# ********** Begin ********** #
print('摄氏温度tt华氏温度')
print('*'*20)

for temp in range(-40, 55, 5):

    print(str(temp)+'tt'+str(9 * temp / 5 + 32))
# ********** End ********** #
#请不要修改下面的代码

print('n***********************n')
#第二题

numbers = []

# 请在下面编写代码
# ********** Begin ********** #
i = 0

while i <= 300:

    if i % 2 == 0 and i % 3 == 0 and i % 5 == 0:

        numbers.append(i)

    i += 1
# ********** End ********** #
# 请不要修改下面的代码
print(numbers)

print('n***********************n')
#第三题

# 请在下面编写代码
# ********** Begin ********** #
sum = 0

for i in range(1, 101):

    sum += i

# ********** End ******
# ********** End ********** #
# 请不要修改下面的代码
print(sum, 't', 100*(100+1)//2)


#第四题

# 请在下面编写代码
# ********** Begin ********** #
fac = 1

for i in range(1, 31):

    fac *= i
# ********** End ********** #
# 请不要修改下面的代码
print(fac)


print('n***********************n')
#第五题

for num in r:
    #请在下面编写代码
    # ********** Begin ********** #
    prime = True

    for i in range(2,num-1):

        if num % i == 0:

            prime = False

            break
    print(prime)
    # ********** End ********** #
    # 请不要修改下面的代码


print('n***********************n')
#第六题
sum = 0
avg = 0
for num in r:
    # 请在下面编写代码
    # ********** Begin ********** #
   sum += num

avg = sum / len(r)


    # ********** End ********** #
    # 请不要修改下面的代码
print(sum, 't', avg)

第3关:函数基础实训

#第一题

def sumInt(n):
    #请在下面编写代码
    # ********** Begin ********** #
    summary=0
    if n<0:
        summary=None
    else:
        for i in range(1,n+1):
            summary+=i
    # ********** End ********** #    
    #请不要修改下面的代码
    return summary


#第二题

def factorial(n):
    #请在下面编写代码
    # ********** Begin ********** #
    fac=1
    if n<0:
        fac=None
    else:
        for i in range(1,n+1):
             fac*=i

    # ********** End ********** #    
    #请不要修改下面的代码
    return fac

#第三题

def isPrime(n):
    # 请在下面编写代码
    # ********** Begin ********** #
    isprime=True
    if n==1:
        isprime=False 
    else:
        for i in range(2,int(pow(n,0.5))+1):
            if n%i==0:
                isprime=False
    # ********** End ********** #        
    # 请不要修改下面的代码
    return (isprime)

#第四题

def f(x):
    # 请在下面编写代码
    # ********** Begin ********** #
    if x>6:
        fx=4*x+1
    elif x>4:
        fx=3*x-4
    elif x>=2:
        fx=pow(x,3)
    elif x>-2:
        fx=abs(x)
    elif x>=-6:
        fx=pow(x,2)
    elif x>=-8:
        fx=x+3
    else :
        fx=x-2
    # ********** End ********** #        

    # 请不要修改下面的代码
    return int(fx)


#第五题

def tax(salary):
    #请在下面编写代码
    # ********** Begin ********** #
    if salary<0:
        salaTax=None
    elif salary<47450:
        salaTax=salary*0.22
    elif salary<114650:
        salaTax=salary*0.25
    elif salary<174700:
        salaTax=salary*0.28
    elif salary<311950:
        salaTax=salary*0.33
    else:
        salaTax=salary*0.35
    # ********** End ********** #        
    # 请不要修改下面的代码
    return salaTax

1是素数吗?为什么?
不是。因为整数有一个性质,就是分解质因数的唯一性,及把一个大于1的整数分解质因数,他的形式是唯一的。而如果1是素数,则分解的形式就唯一的了,因为可以乘若干个1。所以规定1不是素数。
注意:2是素数

第4关:控制结构综合实训

#第一题

def rankHurricane(velocity):
    #请在下面编写代码
    # ********** Begin ********** #
    if velocity<74:
        rank=None
    elif velocity<96:
        rank=1
    elif velocity<111:
        rank=2
    elif velocity<131:
        rank=3
    elif velocity<155:
        rank=4
    else:
        rank=5
    # ********** End ********** #
    #请不要修改下面的代码
    return rank


#第二题

def validCreditCard(num):
    #请在下面编写代码
    # ********** Begin ********** #
    valid = False
    if 1e+8 > num > 1e+7:
        a=0
        b=0
        b1=0
        while not(num==0):
            a+=num%10
            b+=num%100//10            
            num//=100
            b=b*2
            b1+=b%10+b//10
            b=0
        if (a+b1)%10==0:
            valid = True
    # ********** End ********** #    
    #请不要修改下面的代码
    return valid

#第三题

def ISBN(n):
    # 请在下面编写代码
    # ********** Begin ********** #
    total=0
    num = n

    for i in range(2, 11):

        digit = num % 10

        total += i * digit

        num //= 10

    strn = str(n)

    if len(strn) < 9:

        strn = '0'*(9-len(strn)) + strn

    trueISBN = ''

    if total % 11 == 1:

        trueISBN = strn + 'X'

    elif total % 11 == 0:

        trueISBN = strn + '0'

    else:

        trueISBN = strn + str(11 - (total % 11))

    # ********** End ********** #    
    # 请不要修改下面的代码
    return (trueISBN)

#第四题

def day(y, m, d):#计算y年m月d日是星期几
    # 请在下面编写代码
    # ********** Begin ********** #
    y0=y-(14-m)//12
    x=y0+y0//4-y0//100+y0//400
    m0=m+12*((14-m)//12)-2
    d0=(d+x+31*m0//12)%7
    # ********** End ********** #    
    # 请不要修改下面的代码
    return d0
 
def isLeapYear(year): #判断year年是否闰年
    # 请在下面编写代码
    # ********** Begin ********** #
    if y%4==0 and y%100!=0 or y%400==0:
        return(0)
    else:
        return(1)
    # ********** End ********** #    
    # 请不要修改下面的代码
def calendar(y, m): #打印y年m月日历
    print('       {}年{}月'.format(y,m))
    print('SutMtTutWtThtFtSa')
    # 请在下面编写代码调用函数计算y年m月1日是星期几保存在变量date中
    # ********** Begin ********** #
    date=day(y,m,1)
    # ********** End ********** #
 
    days = 0
    # 请在下面编写代码计算y年m月的天数
    # ********** Begin ********** #
    if m==2:
        if isLeapYear(y)==0:
            days=29
        else:
            days=28
    elif m in [1,3,5,7,8,10,12]:
        days=31
    else:
        days=30
    # ********** End ********** # 
    count = date  # y年m月1日是星期几
    for i in range(date):
        print('t', end='')
    for d in range(1, days + 1):
        print(str(d) + 't', end="")
        count = (count + 1) % 7
        if count == 0:
            print()
    print()
   
    # 请不要修改下面的代码 
#第五题

def ramanujan(n):
    results = []
    #请在下面编写代码
    # ********** Begin ********** #
    for a in range(1, n + 1):

        a3 = a * a * a

        if a3 > n:

            break

# Start at a to avoid print out duplicate.

        for b in range(a, n + 1):

            b3 = b * b * b

            if a3 + b3 > n:

                break;

# Start at a + 1 to avoid printing out duplicates.

            for c in range(a + 1, n + 1):

                c3 = c * c * c

                if c3 > a3 + b3:

                    break

# Start at c to avoid printing out duplicates.

                for d in range(c, n + 1):

                    d3 = d * d * d

                    if c3 + d3 > a3 + b3:

                        break

                    if c3 + d3 == a3 + b3:

                        result = str(a3+b3) + ' = ' + str(a) + '^3 + ' + str(b) + '^3 = ' + str(c) + '^3 + ' + str(d) + '^3'

                        results.append(result)
    # ********** End ********** #    
    # 请不要修改下面的代码
    return results


#第六题

def unit_to_word(u): #将0~9的数字转换成英文,并返回转换后的英文
    # 请在下面编写代码
    # ********** Begin ********** #
    convert_table = {0: "zero",

                    1: "one",

                    2: "two",

                    3: "three",

                    4: "four",

                    5: "five",

                    6: "six",

                    7: "seven",

                    8: "eight",

                    9: "nine",}

    return convert_table[u]
    # ********** End ********** #
    # 请不要修改下面的代码


def tens_to_word(t): 
    # 请在下面编写代码
    # ********** Begin ********** #
    convert_table = {

                    0: "",

                    10: "ten",

                    11: "eleven",

                    12: "twelve",

                    13: "thirteen",

                    14: "fourteen",

                    15: "fifteen",

                    16: "sixteen",

                    17: "seventeen",

                    18: "eighteen",

                    19: "nineteen",

                    2: "twenty",

                    3: "thirty",

                    4: "forty",

                    5: "fifty",

                    6: "sixty",

                    7: "seventy",

                    8: "eighty",

                    9: "ninety",}

    if 9 < t < 20:

        return convert_table[t]

    else:

        tens = convert_table[t//10] + " " + unit_to_word(t%10)

    return tens.lstrip()

    # ********** End ********** #
    # 请不要修改下面的代码

def hundreds_to_word(h): #利用unit_to_word、tens_to_word进行转换,并返回转换后结果的函数
    # 请在下面编写代码
    # ********** Begin ********** #
    if h > 99:

        word = unit_to_word(h//100) + " hundred"

        tens = h % 100

        if tens == 0:

            return word

        else:

            return word + " and " + tens_to_word(tens)

    else:

        return tens_to_word(h)

    # ********** End ********** #    
    # 请不要修改下面的代码

if __name__ == '__main__':
    for v in [60, 74, 95, 96, 110, 111, 130, 131, 154, 170]:
        rank = rankHurricane(v)
        print(rank)
    print('n***********************n')

    for num in [1234567, 43589795, 87539319, 123456789]:
        valid = validCreditCard(num)
        print(valid)
    print('n***********************n')

    for num in [201314525, 488888913, 977889994, 753231846, 701134069]:
        trueISBN = ISBN(num)
        print(trueISBN)
    print('n***********************n')

    for (y,m) in [(2017,8), (2017,10),(2015,8), (2017,2), (2016,2)]:
        calendar(y, m)
        print('---------------------------')

    print('n***********************n')

    for num in [2000, 10000, 100000]:
        st = ramanujan(num)
        for item in st:
            print(item)

    print('n***********************n')

    for test in [0, 5, 19, 23, 100, 700, 711, 729]:
        print(test, "=>", hundreds_to_word(test))


运算符优先级得注意,在一些表达式灵活运用

计算某年某月第一天是星期几

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772823.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号