python 课后习题汇总(实验7)

1.编写一个函数,输入一个不超过5位的正整数,输出该数为几位数,并逆序打印出各位数字。例如:输入 456,则输出(3,654)。

a=input('输入一个不超过5位的正整数:')
m = len(a)
print('这个数是',m,'位数')
n=a[::-1]
for i in n:
    print(i,end='')

2.利用函数编写程序,生成50个随机数据,模拟一个班的考试成绩(要求在40~100分之间),计算这批数据的平均分、最高分和最低分,并由高到低输出排序值。

import random
from random import randint
random.seed(7)
a=[randint(40,100) for i in range(50)]
a.sort()
total=0
for i in range(len(a)):
    total=total+a[i]
avg=total/len(a)
print("平均分:",avg)
#最低分
print("最低分:",min(a))
print("最低分:",a[0])
#最高分
print("最高分:",max(a))
print("最高分:",a[49])
#高到低排序:
b=a[::-1]
print("高到低:",b)

 3.编写程序,以整数17为随机数种子,以用户输入的整数N为长度,产生3个长度为 N位的密码,密码的每位是一个数字,每个密码单独一行输出(产生密码采用 random.randint()函数)

import random
def genpwd(length):
    a = 10**(length-1)
    b = 10**length -1
    return "{}".format(random.randint(a, b))
print('请输入整数N的长度:')
length = eval(input())
random.seed(17)
for i in range(3):
    print(genpwd(length))

4. 定义一个函数,函数参数为一个用户输人的小于10000的正整数,分解它的各位数字,并以一个元组的形式返回,在主程序中调用该函数。

def position(a):
    lst=[]
    for i in str(a):
        lst.append(int(i))
    return print(tuple(lst))
position(2417)

 5.随机输人若干个不超过2位的正整数(输入-1表示输人结束),找出其中所有同构数并排序输出。(正整数n若是它平方数的尾部,则称n为同构数。如5的平方数是25,且5是25的尾部,那么5就是一个同构数。同理,25的平方为625,25也是同购数。)

def getNum():
    nums=[]
    iNumStr=input()
    while iNumStr !='-1':
    if(len(iNumStr) in[1,2]):
            if(iNumStr.isdigit()):
                nums.append(eval(iNumStr))
        iNumStr=input()
    return nums
def tonggou(n):
    list=[]
    for i in n:
        if(len(str(i))==1):
            if(str(i)==(str(i*i))[-1]):
                list.append(i)
        if(len(str(i))==2):
            if(str(i)==(str(i*i))[-2:]):
                list.append(i)
    return list
def main():
    s=getNum()
    m=tonggou(s)
    m.sort()
    print("同构数有:",end=' ')
    for e in m:
        print(e,end=' ')
main()

 

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年11月27日
下一篇 2023年11月27日

相关推荐