Python上机实验(三)重难点总结

1: 分别使用 if while 语句删除将列表 x = [1,2,1,2,1,1,1]中的元素“1” 全部删除。

x = [1, 2, 1, 2, 1, 1, 1]
y = x[:]
 for ins in y:
     if ins == 1:
         x.remove(1)
 print(x)

 笔记http://t.csdn.cn/M45tR 详解[:]和[::]

x = [1, 2, 1, 2, 1, 1, 1]
fre = x.count(1)
 for i in range(fre):
 	x.remove(1)
 print(x)

笔记count()方法返回列表中某个元素的出现次数。

简单来说,count()方法计算一个元素在列表中出现的次数并返回它。

count()方法的语法为:list.count(element)

x = [1, 2, 1, 2, 1, 1, 1]
while 1 in x:
 	x.remove(1)
 print(x)
 y=[s for s in x if s!=1]#列表推导式

 2:使用列表实现筛选法求素数提示:素数判断方法:用一个数分别去除 2 sqrt(这个数),如果能被整除,则表明此数不是素数, 反之是素数

maxNumber = int(input('请输入一个大于 2 的自然数: '))
 lst = list(range(2, maxNumber))
 # 最大整数的平方根
 m = int(maxNumber ** 0.5)
 for index, value in enumerate(lst):
 	# 如果当前数字已大于最大整数的平方根, 结束判断
 	if value > m:
 		break
 	# 对该位置之后的元素进行过滤
 	lst[index + 1:] = filter(lambda x: x % value != 0, lst[index + 1:])
 print(lst)
prinmNumber=[]
x = eval(input('请输入一个大于 2 的自然数: '))
if x>2:
    for i in range(2,x):
        flag = True
        for j in range(2, int(i/2)+1):
            if i % j == 0:
                flag = False
                break
        if flag:
            prinmNumber.append(i)
    print(prinmNumber)
else:
    print('数请输入大于2的数字')
3:创建一个空字典 student, 录入学生姓名和成绩 , 并一一对应 , 当所有学生的信息录入完之后, 输入 1 退出。需要注意的是 ( 学生成绩范围为 0~150) 超出范围重新输入。 提示: 使用 dict 函数和 zip 函数
 name1=input("输入学生姓名:")
 grade1=input("输入该学生的成绩:")
 if(grade1>150 or grade1<0):
     print("请重新输入!")
 student=dict(name='name1',grade='grade1')
 print(student['name'])
 print(student.get('grade'))
 print(list(student))
 print(list(student.values()))
 print(list(student.items()))
 for name,grade in student.items():
     print("学生姓名:",name,"学生成绩",grade)
     print(zip(name,grade))
     if(input(1)):
         break
student={}
alist=[]
blist=[]
prime=0
while prime==0:
    a=input("请输入学生姓名:")
    alist.append(a)
    b=eval(input("请输入学生个成绩:"))
    if b>0 and b<150:
        blist.append(b)
    else:
        print("输入错误,请重新输入")
    prime=int(input("是否需要继续?是请输入0,否请输入1"))
student=dict(zip(alist,blist))
print('学生姓名及对应成绩为:',student)

4:自己编写一个长度至少五 5 的字典,其中姓名为键和性别为值;请编写一个程序,删除性别为男的员工信息。

a={'liming':'男','lihua':'女',"asd":"女","wanger":"男","saisai":"男"}
 aim = a.copy()
 for  key in a:
     if a[key]=="男":
         del aim[key]
 aim={}
 for key in a:
         if a[key]=="女":
             aim[key]=a[key]
a={'liming':'男','lihua':'女','zhangsan':'男','lili':'女'}
list1=[]
list2=[]
v=a.values()
k=a.keys()
for i in k:
    list1.append(i)
for j in v:
    list2.append(j)
for n in list2:
    if(n=='男'):
        x=list2.index('男')#显示‘男’的下标(因为值与键的下标是一致的)
        list2.remove('男')
        list1.remove(list1[x])
dic=dict(zip(list1,list2))#形成新的字典
print(dic)

笔记http://t.csdn.cn/h7KUc 详解values(),litm(),key()函数

5:.使用集合实现筛选法求素数

def sushu(num):
        prime = True
        for i in range(2,num):
            if num%i == 0:
                print(str('%d' % num)+'不为素数' )
                prime = False
                break
        if prime is True:
            print(str('%d' % num)+'为素数')
aset=set()
alist=[]
n=int(input('请输入集合元素的个数:'))
for i in range(n):
	a=int(input('请输入元素:'))
	alist.append(a)
aset=set(alist)
alist=list(aset)
print('The Judgement:')
for i in range(len(alist)):
    sushu(alist[i])

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值