pythom练习(二)

编程就是少不了练习,下面和小编一起去看看题目,一起去解答python有趣的小问题吧!(如果有不同答案,想法欢迎留言。

1:有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?

'''
    ls富
    2021/1/16
    练习处理
'''
num=range(1000,10000)
l=[]
for i in num :
    if int(i/100)%10==3 and int(i/10)%10==6:#筛选百位数字都是3,十位数字都是6
        if i%3==0 and i%2==0:#能被2整除,又能被3整除
            while i!=0:
                l.append(i)
                print(max(l))
                print(min(l))
                break

在这里插入图片描述

2:编程求一个四位自然数ABCD,它乘以A后变成DCBA

'''
    ls富
    2021/1/16
    练习处理
'''
num=range(1000,10000)
for i in num:
    A=int(i  / 1000) % 10
    B = int(i / 100) % 10
    C = int(i / 10) % 10
    D = i % 10
    num1=D*1000+C*100+B*10+A
    if i*A==num1:
        print(i)

在这里插入图片描述

3:如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".

4:验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

'''
    ls富
    2021/1/16
    练习处理
'''
unm=int(input("请输入一个大于9的数(10~100):"))
while unm == 10 :
        print("能被9整除")
        break
if 100>=unm>10:
        y=int(unm/10%10)
        z=int(unm%10)
        h=y+z
        print(h)
        if (unm -h) %9==0:
            print("能被9整除")

在这里插入图片描述

5、一个五位数,若在它的后面写上一个7,得到一个六位数A,
若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此
五位数.

	'''
    ls富
    2021/1/16
    练习处理
'''
num=range(10000,100000)
for i in num:
     num1=i * 10 + 7
     num2=i + 700000
     if num2/num1==5:
         print(i)

在这里插入图片描述

6:有一种最简真分数,它们的分子与分母的乘积都是140,把
所有这样的真分数从小到大打印出来

	'''
    ls富
    2021/1/16
    练习处理

'''
for i in range(1,14):
    for j in range(i,141):
        if i*j==140:
             print("%d/%d"%(i,j))

在这里插入图片描述

7:某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这 个自然数.

'''
    ls富
    2021/1/16
    练习处理
'''
num=range(1,100000)
for i in num:
    x = i/80
    if x % 7 ==0 and x%2==1 and x%3==1 and x%4==1 and  x%5==1 and x%6==1:
        print(x)

在这里插入图片描述

8:编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和.

'''
    ls富
    2021/1/16
    练习处理
'''
num=range(99,1000)
for i in num:
    h = i/11
    x=int(i/100%10)
    y=int(i/10%10)
    z=int(i%10)
    s=x+y+z
    if h==s:
        print(i)

在这里插入图片描述

9:给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和

'''
    ls富
    2021/1/16
    练习处理
'''
lt=list(input("请输入二个以上的数字:"))
for i in range(len(lt) - 1):
        for j in range(len(lt) - 1 - i):
            if lt[j] > lt[j + 1]:
                lt[j], lt[j + 1] = lt[j + 1], lt[j]
print(lt)

在这里插入图片描述

10:有一堆硬币,每次只能拿一个或者两个,求多少次可以拿完硬币

'''
    ls富
    2021/1/16
    练习处理
'''

#递归法
num=int(input("请输入硬币数"))
def yibi(n):
    d={1:1,2:2}
    if n in d.keys():
        return d[n]
    else:
        return yibi(n-1)+yibi(n-2)

print(yibi(num))

在这里插入图片描述
10:有一堆硬币,每次只能拿一个或者两个,求至少多少次可以拿完硬币:[10,16,17,20]

'''
    ls富
    2021/1/16
    练习处理

'''
ls=[10,16,17,10]
x=0
for i in ls:
    if i % 2 ==0:
        x+=i//2
    
    else:
        x+=i//2+1
print(x)

在这里插入图片描述

11:将list中的重复数据去重,至少使用两种方案

'''
    ls富
    2021/1/16
    练习处理
'''
#类型转化集合set(无序,不能重复,不存在下标)
lt=[1,21,2,12,1,23,4,5,5]
s=set(lt)
l=list(s)
print(l)
#list下标查看进行比查看
for i in lt:
    for j in range(len(lt)  - i):
        if lt[j] == lt[j + 1]:
            lt.pop(j)
print("输出重复的数:%d"%i)

在这里插入图片描述

12:完成一个登录注册案例(要求使用容器保存数据)

'''
    ls富
    2021/1/16
    练习处理
'''
import sys


# users保存所有注册成功的用户
users = []
while True:
	print("欢迎登录我们的用户管理系统")
	print("\t\t 1、用户注册")
	print("\t\t 2、用户登录")
	print("\t\t 3、退出系统")
	choice = input("请选择您的操作:")

	if choice == "1":
		while True:
			print("欢迎进入到用户注册页面")
			username = input("请输入用户名称:")
			password = input("请输入用户密码:")
			confirm_password = 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
			# 密码长度不能少于3位
			if len(password) < 3:
				print("对不起,密码长度不能少于3位")
				continue
			# 两次密码不一致
			if password != confirm_password:
				print("两次密码不一致")
				continue

			# 最后如何保存用户名称和密码
			user = {"username": username, "password": password}
			users.append(user)
			print("用户注册成功,请登录")
			break
	elif choice == "2":
		print("欢迎进入到用户登录页面")
		username = input("请输入用户名称:")
		password = input("请输入用户密码:")

		# 判断用户名和密码是否存在于users
		for user in users:
			if user["username"] == username and user.get("password") == password:
				print("恭喜您,{},登录成功".format(username))
			else:
				print("对不起,登录失败,请重新登录~~")

	elif choice == "3":
		sys.exit()
	else:
		print("输入有误,请重新选择")


13:两个列表进行合并操作

'''
    ls富
    2021/1/16
    练习处理
'''
lt1=[1,2,3,4,5,6]
lt2=[2,3,4,5,6,7,8]
lt3=lt1+lt2
print(lt3)

14: 使用列表判断一个列表是否在另外一个列表中

'''
    ls富
    2021/1/16
    练习处理
'''
lt1=[1,2,3,4,5,6]
lt2=[2,3,4,5,6,7,8]
lt3=lt1+lt2
if len(lt1) <= len(lt3):
    print("存在")
    
else:
    print("不存在")

在这里插入图片描述

15:列表的反转 列表的排序

'''
    ls富
    2021/1/16
    练习处理
'''
lt1=[1,23,46,8,93,6,3,4,5,6]
lt2=["A","c","d","G"]
lt1.sort()#排序
print(lt1)
lt2.sort(key=None)#英文排序
print(lt2)
#反转
lt1.reverse()
print(lt1)

在这里插入图片描述

16:存在如下一个列表[1,3,5,3,4,100,-21,1,6],请完成排序,注意,不要使用系统api

'''
    ls富
    2021/1/16
    练习处理
'''
lt=[1,3,5,3,4,100,-21,1,6]
for i in range(len(lt) - 1):
        for j in range(len(lt) - 1 - i):
            if lt[j] > lt[j + 1]:
                lt[j], lt[j + 1] = lt[j + 1], lt[j]
print(lt)

在这里插入图片描述

17:如何将0-10随机存入列表中

'''
    ls富
    2021/1/16
    练习处理
'''
import random
lt=[2,3,4,5,6]
x=random.randint(0,10)
lt.append(x)#末尾开始
print(lt)
lt.insert(2,x)#从3开始
print(lt)

在这里插入图片描述

今有四个人,他们得年龄各不相同,他们年龄总和是129,而其中有三个人的年龄是平方数,若倒退15年,这四人中仍有三个人的年龄是平方数,求他们各自的年龄:

(选做题):
某个人进入如下一个棋盘中,要求从左上角开始走,最后从右下角出来(要求只能前进,不能后退),
问题:共有多少种走法?

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

你可能感兴趣的:(python练习,python)