1、求一个十进制的数值的二进制的0、1的个数
def pairs(a=[]):
x = 0
for i in a:
x ^= i
return x
a = [1,3,1,2,2,8,8]
print(f"这个数是 {pairs(a)}")
2、实现一个用户管理系统(要求使用容器保存数据)
[{name: xxx, pass: xxx, ……},{},{}]
users = []
while True:
print("\t\t欢迎登录用户管理系统")
print("\t\t 1、用户注册")
print("\t\t 2、用户登录")
print("\t\t 3、退出系统")
choice = input("请输入您的选择:")
if choice == "1":
while True:
username = input("请输入用户名:")
password = input("请输入密码:")
password_again = input("请再次确认密码:")
if username == None or len(username) == 0:
print("对不起,用户为空")
continue
flag = False
for u in users:
if u.get("username") == username:
print("对不起,该用户已经存在,请重新注册")
flag = True
break
if flag:
continue
if password != password_again:
print("两次密码不一致")
continue
user = {"username": username, "password": password}
users.append(user)
print("用户注册成功,请登录")
print("\n")
break
elif choice == "2":
print("\n")
username = input("请输入用户名:")
password = input("请输入密码:")
for user in users:
if user["username"] == username and user.get("password") == password:
print("尊敬的{},欢迎回来".format(username))
else:
print("对不起,登录失败,请重新登录")
else:
sys.exit()
3、求1~100之间不能被3整除的数之和
sum=0
for i in range(1,101):
if i %3 !=0:
sum +=i
print(sum)
4、给定一个正整数N,找出1到N(含)之间所有质数的总和
num=int(input("请输入一个数:"))
sum=0
flag=True
for num in range(1,num):
for i in range(2,num):
if num % i == 0:
flag=False
break
else:
flag=Ture
if flag==True:
sum +=num
print(sum)
5、计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)
def pi():
x = 0
y = 1
for i in range(1,10000,2):
if y % 2 != 0:
x = x + 1 / i
y += 1
elif y % 2 == 0:
x = x - 1 / i
y += 1
pi = 4 * x
print(f"PI={pi}")
pi()
6、给定一个10个元素的列表,请完成排序(注意,不要使用系统api)
def a(num):
index = 0
count = 0
for i in range(num):
index += num * 10 ** i
print(index)
count += index
print(count)
num = int(input('请输入一个数字:'))
print(a(num))
7、求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定
def num(x,y):
a = 0
for i in range(1,y + 1):
j = int(f"{x}" * i)
a += j
return a
x = int(input("输入一个1-9的数:"))
y = int(input("输入项数:"))
print(num(x,y))
8、合并两个有序数组,合并后还是有序列表
def pai(a=[]):
for i in range(len(a)):
min_a = i
for j in range(i + 1, len(a)):
if a[min_a] > a[j]:
min_a = j
a[min_a], a[i] = a[i], a[min_a]
return a
a1 = [3,2,1]
a2 = [6,5,4]
a1.extend(a2)
print(pai(a1))
9、给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
def jiou(a=[]):
for i in range(len(a)):
if a[i] % 2 != 0:
for j in range(i + 1,len(a)):
if a[j] % 2 == 0:
a[i],a[j] = a[j],a[i]
break
return a
a = [1,2,3,4,5,6,7,8,9]
print(a)
print(jiou(a))
10、给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),
可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数
def findDuplicate(nums):
nums.sort()
for i in range(1, len(nums)):
if nums[i] == nums[i - 1]:
print(nums[i])
findDuplicate([1, 2, 3, 4, 2, 1])
11、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)
def Divisible():
for i in range(10000):
if (i % 5 == 0 or i % 6 == 0) and not (i % 5 == 0 and i % 6 == 0):
print(i)
Divisible()
12、写一个方法,计算列表所有偶数下标元素的和(注意返回值)
def indexs(nums):
double = []
res = 0
for i in nums:
if i % 2 == 0:
double.append(nums.index(i))
for j in double:
res += j
print(f"偶数下标和为:{res}")
indexs([1, 2, 3, 4, 5])