pythom演習(2)

プログラミングは欠かせないプラクティスです。エディターでトピックを見て、Pythonの興味深い小さな質問に一緒に答えましょう!(異なる回答がある場合は、アイデアのメッセージを残してください。

1:約4桁、100桁はすべて3、10桁はすべて6で、2と3で割り切れる可能性があります。このような4桁で最大と最小の2桁を見つけます。それぞれは何ですか。

'''
    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:Aを掛けるとDCBAになる4桁の自然数ABCDを見つけるためのプログラミング

'''
    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:検証: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整除")

ここに画像の説明を挿入します

4. 5桁の数字、
その後に7を書く、6桁のAになり、その前に7を書くと、6桁のBになり、BはAの5倍になります。これを見つけてください。
5桁数。

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

ここに画像の説明を挿入します

5:最も単純な真の分数があり、分子と分母の積は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))

ここに画像の説明を挿入します

6:ある数を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)

ここに画像の説明を挿入します
7.次の条件を満たす3桁を見つけるようにプログラムします。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)

ここに画像の説明を挿入します

8:リストを指定して、最大値を見つけ(システム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)

ここに画像の説明を挿入します

9:コインが山積みになっていますが、一度に1つか2つしか取れませんが、何回コインを受け取ることができますか?

'''
    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:コインの山があり、一度に1つか2つしか取れません。少なくともコインを何回取ることができるかを見つけてください:[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)

ここに画像の説明を挿入します

10:リスト内の重複データを削除するには、少なくとも2つのスキームを使用します

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

ここに画像の説明を挿入します

11:ログイン登録ケースを完了します(データを保存するにはコンテナーを使用する必要があります)

'''
    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("输入有误,请重新选择")


12:2つのリストがマージされます

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

13:リストを使用して、あるリストが別のリストにあるかどうかを判断します

'''
    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("不存在")

ここに画像の説明を挿入します

14:リストの並べ替えを逆にしました

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

ここに画像の説明を挿入します

15:次のようなリストがあります[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)

ここに画像の説明を挿入します

16: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)

ここに画像の説明を挿入します

今日は4人で年齢が異なります。合計年齢は129歳で、3人の年齢は平方数です。15年前にさかのぼると、この4人のうち3人はまだ年齢の平方数です。質問してください。それぞれの年齢のために:

(オプションの質問):
人が次のチェス盤に入り、左上隅から始めて、最後に右下隅から出てきます(後ろではなく前に進む必要
があります)。質問:いくつの動きがありますか?

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

おすすめ

転載: blog.csdn.net/weixin_47514459/article/details/112723380