python实验3函数

1、编写程序,输入一个元素类型为整型的列表a,计算得到一个元组,该元组的第一个元素为列表a的最大值,其余元素为该最大值在列表中的下标。

a=input('输入一个整型列表\n')
a=eval(a)
zuidazhi=a[0]
xiabiao=[]
for i in range(1,len(a)):
	if zuidazhi<a[i]:
		zuidazhi=a[i]
for i in range(len(a)):
	if a[i]==zuidazhi:
		xiabiao.append(i)
xiabiao.insert(0,zuidazhi)
jieguo=tuple(xiabiao)
print(jieguo,type(jieguo))

2、编写程序,随机生成[0,100]范围内的20个不重复的整数,存入列表中,将该列表的前10个元素按降序排序,后10个元素按升序排序。

import random
list_1=[]
list_2=[]
list_3=[]
for i in range(20):
	list_1.append(random.randint(0,100))
print('生成的随机数列表为:\n',random.sample(list_1,20))
list_2=list_1[0:10]
list_3=list_1[10:20]
list_2.sort()
list_2.reverse()
list_3.sort()
list_1=list_2+list_3
print('排序后的列表为:\n',list_1)

3、编写程序,输出10行的杨辉三角。

list=[[],[],[],[],[],[],[],[],[],[]]
for i in range(10):
          if i==0:
                    list[0]=[1]
          elif i==1:
                    list[1]=[1,1]
          else:
                    for j in range(i-1):
                              a=list[i-1][j];b=list[i-1][j+1]
                              list[i].insert(i-1,a+b)
                    list[i].insert(0,1);list[i].append(1)
for n in range(10):
          list[n]=' '.join(str(i) for i in list[n])
          print(list[n])


4、编写程序,从键盘上输入10同学的英语成绩(百分制),分别统计出优、良、中、及格和不及格的人数。

scores=[]
excellent,good,medium,pass_num,fail_num=0,0,0,0,0
for i in range(10):
	score=float(input('请输入第{}个学生的成绩:'.format(i+1)))
	scores.append(score)
	if score>=90:
		excellent+=1
	elif score>=80:
		good+=1
	elif score>=70:
		medium+=1
	elif score>=60:
		pass_num+=1
	else:
		fail_num+=1
print('优秀人数:{},良好人数:{},中等人数:{},及格人数:{},不及格人数:{}'.format(excellent,good,medium,pass_num,fail_num))

5、编写程序,从键盘输入一个用户的18位身份证号码,从中提取出生日期并输出。

id=input('请输入身份证号码:')
year=id[6:10]
mouth=id[10:12]
day=id[12:14]
print("出生日期是:",year,"年",mouth,"月",day,"日")

6、用户从键盘上输入一句英文,将其中的单词以反序输出,如 “This is a book” → “sihT si a koob”。

string=input("输入英文:")
string_list = list(string)
string_list.reverse()
print(''.join(string_list))

7、定义一个求和函数Sum(n),该函数实现的功能是求1+2+3+…+n的和,并编写主程序调用该函数,要求用户从键盘输入一个正整数m。

n=int(input("输入n:"))
sum=0
for i in range(1,n+1):
          sum+=i
print(sum)

8、编写一个自定义函数,用于判断一个正整数是否为素数,并利用该函数验证哥德巴赫猜想,即任意大于或等于4的偶数都可以分解为两个素数之和,要求输出测试数据的所有组合。


def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, n):
        if n % i == 0:
            return False
    return True

for n in range(3, 100):
    for i in range(2, n):
        if is_prime(i) and is_prime(n - i):
            print(f"{n} = {i} + {n - i}")
            break

9、编写一个自定义函数,用于判断两个数是否为幸运对数。所谓幸运对数是指两数相差3,且各位数字之和能被6整除的一对数,如147和150就是幸运对数。要求找出所有的3位幸运对数。

def num(a):

    b = a // 100
    s = a // 10 % 10
    g = a % 10
    k = b + s + g

    if k % 6 == 0:
        return 1
    else:
        return 0

for i in range(100, 1000):
        j=i+3
        if(num(i) and num(j)):
            print(i,j)

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值