Python 练习题三

一、求一个十进制的数值的二进制的0、1的个数

num = int(input("请输入数字:"))

def numt(num):
	a = bin(num)
	print(f"二进制为{a}")
	b = str(a).count("1")
	return b


print(numt(num))

 二、实现一个用户管理系统(要求使用容器保存数据)

[{name: xxx, pass: xxx, ……},{},{}]

三、求1~100之间不能被3整除的数之和

a = 0 
for x in range(1, 101):
	if x % 3 == 0:
		continue
	else:
		a = x + a
print(f"百位以内不可被三整除的数的和为:{a}")

四、给定一个正整数N,找出1到N(含)之间所有质数的总和

n = int(input("请输入一个数字:"))

def numn(n):
	a = 1
	for i in range(2,n + 1):
		flag = True
		for j in range(2,i):
			if i % j == 0:
				flag = False
				break
		if flag:
				a = i + a
	print(f"1到{n}间质数之和为:{a}")


numn(n)

五、计算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()

六、给定一个10个元素的列表,请完成排序(注意,不要使用系统api)

def pai(a = []):
	for i in range(len(a)):
		mina = i 
		for j in range(i + 1, len(a)):
			if a[mina] > a[j]:
				mina = j 
				a[mina], a[i], [mina]
	return a


a = [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
print(a)
print(f"排序后为:{pai(a)}")

七、求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。

def na(x, y):
	a = 0
	for i in range(1, y + 1):
		j = int(f"{x}" * 1)
		a += j
	return a


x = int(input("输入一个1~9的数:"))
y = int(input("输入项数:"))
print(na(x, y))

八、合并两个有序数组,合并后还是有序列表

def pai(a=[]):
	for i in range(len(a)):
		mina = i
		for j in range(i + 1,len(a)):
			if a[mina] > a[j]:
				mina = j
		a[mina], a[i] = a[i], a[mina]
	return a

	
a1 = [1,3,5,7,9]
a2 = [0,2,4,6,8]
a1.extend(a2)
print(pai(a1))

九、给定一个非负整数数组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))

十、给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),
可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数

 

[1,6,1,2,2,8,8]

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)}这个数字不是成对出现的")

十一、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

def func():
    for i in range(1, 10001):
        if (i % 5 == 0 or i % 6 ==0 ):
            if i % 5 == 0 and i % 6 ==0:
                continue  
        print(i)


func()

十二、写一个方法,计算列表所有偶数下标元素的和(注意返回值)

def ls_conut_o(A):
    count = 0
    for i in A:
        if i % 2 == 0:
            b = A.index(i)
            count += b
    print(count)

    
A = [1,2,3,4,4]
ls_conut_o(A)

十三、某个人进入如下一个棋盘中,要求从左上角开始走,
最后从右下角出来(要求只能前进,不能后退)

问题:共有多少种走法?
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

十四、汉诺塔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值