python 作业 4

#如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数"
‘’'ls = []

for i in range(2,101):
flag = True
for j in range(2,i):
if i % j == 0:
flag = False
break
else:
continue
if flag:
ls.append(i)
n = 0
print(ls)
while n < len(ls) - 1:
first = ls[n]
second = ls[n +1]
if second - first == 2:
print(f’{first}和{second}之间是孪生素数’)
n+=1’’’
#如何将0-10随机存入列表
‘’‘import random
ls = []
for i in range(10):
ls.append(random.randint(0,10))
print(ls)’’’
#作业1:完成一个登录注册案例(要求使用容器保存数据)
‘’‘users = []
while True:
print(‘欢迎您首次进入我们的系统’)
print(’ 1.登录’)
print(’ 2.注册’)
print(’ 3.退出’)
n = input(‘请输入您的选择:’)
if n == ‘2’:
while True:
print(‘欢迎进入注册界面!’)
a = input(‘请输入您的账户:’)
b = input(‘请输入您的密码:’)
if a == None or len(a) == 0:
print(‘对不起,用户名不能为空或者长度为0,请重新输入’)
continue
flag = False
for d in users:
if d.get(‘a’) == a:
print(‘对不起,用户名已经存在,请重新输入’)
flag = True
break
if flag:
continue
if len(b) < 3:
print(‘密码长度不能小于3,请重新输入’)
continue
user = {“username”:a, “password”:b}
users.append(user)
print(“用户注册成功,请登录”)
print(users)
break
elif n == ‘1’:
print(‘欢迎进入登录界面!’)
a = input(‘请输入您的账户:’)
b = input(“请输入您的密码:”)
for user in users:
if user[‘username’] == a and user.get(‘password’) == b:
print(‘登陆成功’)
break
else:
print(‘登陆失败,请重新输入’)
elif n == ‘3’:
exit()
else:
print(‘输入有误,请重新选择’)’’’
#作业2:给定一个10个元素的列表,请完成排序(注意,不要使用系统api)
#冒泡排序
‘’‘import random
a = []
for k in range(10):
a.append(random.randint(0,10))
print(a)
for i in range(len(a)-1):
for j in range(len(a)-1-i):
if a[j]>=a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
print(a)’’’
#选择排序默认第一个数是最小值,然后循环和数组里的每一个数比较,找到最小值,然后放在开头,循环往复,直至从小到到大排序完成
#插入排序
#作业3:求 a+aa+aaa+…+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
‘’‘i = 0
n = 0
k = 0
a = 0
h = 0
ls = []
m = int(input(‘请输入项数:’))
while True:
n = int(input(‘请输入一个1~9中的一个数:’))
if n > 9:
print(‘输的数已经大于9’)
break
ls.append(n)
h += n
i += 1
k += 1
if k == m:
break
print(ls)
print(f’项数为{i}’)
print(f’和为{h}’)’’’

‘’‘n = int(input(‘请输入想加的数字:’))
m = int(input(‘请输入想加的项数:’))
s = 0
for j in (1,m + 1):
a = 0
for i in range(j):
a += 10**i
s += (n*a)
print(s)’’’

#作业4:合并两个有序数组,合并后还是有序列表
‘’‘import random
n = []
m = []
for i in range(10):
n.append(random.randint(0,10))
m.append(random.randint(0,10))
print(n)
print(m)
for j in range(len(n)-1):
for k in range(len(n)-1-j):
if n[k]>n[k+1]:
n[k],n[k+1]=n[k+1],n[k]
print(f’n排序后的数组{n}’)
for j in range(len(m)-1):
for k in range(len(m)-1-j):
if m[k]>m[k+1]:
m[k],m[k+1]=m[k+1],m[k]
print(f’m排序后的数组为{m}’)
n.extend(m)
print(f’合并之后的数组为{n}’)
for j in range(len(n)-1):
for k in range(len(n)-1-j):
if n[k]>n[k+1]:
n[k],n[k+1]=n[k+1],n[k]
print(f’排序之后的数组为{n}’)’’’
#作业5:给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
#import random
‘’‘A = []
B = []
C = []
n=0
m=0
for i in range(10):
A.append(random.randint(1,11))
print(A)
for j in range(0,len(A)):
if A[j] % 2 == 0:
B.append(A[j])
else:
C.append(A[j])
B.extend©
print(f’改变之后的数组为\n{B}’)’’’
#作业6:将10进制数据转换为二进制,并且统计其中的0和1的数量
#可以使用builtins全局函数,binar(二进制)
import builtins
‘’‘n = int(input(‘请输入一个十进制数:’))
m = bin(n)
m = m[2:]
zero_count = 0
o_count = 0
for i in m:
if i == ‘0’:
zero_count+=1
else:
o_count+=1
print(m)
print(f"{m}转换为二进制之后,0有{zero_count}个,1有{o_count}个")’’’

‘’‘n = int(input(‘请输入一个十进制数:’))
b = []
for i in range(n):
if i % 2 == 0:
print(‘1’)
b.append(i)
else:
print(‘0’)
b.append(i)
print(b)’’’
‘’‘m = int(input(‘请输入一个十进制数:’))
zero_count = 0
o_count = 1
b_m = ‘’
while m != 0:
if m % 2 != 0:
o_count += 1
b_m=b_m+‘0’
else:
zero_count += 1
b_m = b_m + ‘1’
m //= 2
print(f"{m}转换为二进制之后,0有{zero_count}个,1有{o_count}个")’’’
#作业7:给定一个数组,已知数组中的元素都是成对出现,

现在数组中只有一个元素没有成对,请找出这个元素。

[1,3,1,2,2,8,8]

‘’‘a = [1,3,1,2,2,8,8]
b = []
c = []
for i in range(len(a)-1):
for j in range(len(a)-1-i):
if a[j]>a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
print(a)
flag = False
for k in range(len(a)-1):
if a[k] == a[k + 1]:
print(f’{a[k]}是成对的’)
flag=True
else:
b.append(a[k])
if flag:
c=b.pop(2)
print(f’{c}不是成对的’)
‘’’
#异或运算完成
‘’‘ls = [1,3,1,2,2,8,8]
res = 0
for i in ls:
res ^= i
print(f’这个列表中没有出现的是{res}’)’’’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值