编程就是少不了练习,下面和小编一起去看看题目,一起去解答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