python基础练习

这篇文章包含一系列编程题目,包括计算十进制数中0和1的个数、实现用户注册登录系统、求解特定条件下的数列和(如不能被3整除的数、质数总和)、计算PI、排序算法、合并有序数组、重排数组以及找出数组中的重复数和特定整除条件的数。
摘要由CSDN通过智能技术生成

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])

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值