Python プログラミング演習 (2)

目次

1. ユーザーは 2 つの数字 a と b を入力します。a が b で割り切れる場合、または a と b を加えた値が 1000 より大きい場合は a を出力し、それ以外の場合は b を出力します。

2. 数値を入力し、偶数か奇数かを決定してください。偶数の場合は 1 ~ 3 の倍数を決定し、奇数の場合は 1 ~ 5 の倍数を決定してください。

3. 同じかごの中に鶏とウサギがいます。上から見ると頭が 35 本、下から見ると足が 94 本あります。鶏は何羽、ウサギは何匹いますか。

4. 標準の水仙番号を印刷し、これらの水仙番号を出力します。

5. 50 から 150 までの素数は何ですか?

6. 5 桁の数字の後に 7 を書くと 6 桁の数字 A が得られます。その前に 7 を書くと 6 桁の数字 B が得られます。B は A の 5 倍です. 5桁の数字の桁数を求めます。

7. コインの山があり、一度に 1 つまたは 2 つしか取れません。すべてのコインを取得する最小回数を求めてください [10、8、5、3、27、99]

8. 2 つの素数の差が 2 のとき、この 2 つの素数を「双子数」といいます。100 以内の「双子数」をすべて求めてください。

9. 与えられたリストから最大値を見つけます (システム API は使用できません)、最小値、平均値、合計を見つけます。

10. リスト内の重複データを重複排除し、少なくとも 2 つのソリューションを使用します。

11. 2 つのリストを結合する

12. リストの反転 リストの並べ替え

13. 0~10をランダムにリストに格納する方法


1. ユーザーは 2 つの数字 a と b を入力します。a が b で割り切れる場合、または a と b を加えた値が 1000 より大きい場合は a を出力し、それ以外の場合は b を出力します。

a = float(input("输入第一个数"))
b = float(input("输入第二个数"))
if b / a == 0 or a + b > 1000:
    print('%0.2f' % a)
else:
    print('%0.2f' % b)

 

2. 数値を入力し、偶数か奇数かを決定してください。偶数の場合は 1 ~ 3 の倍数を決定し、奇数の場合は 1 ~ 5 の倍数を決定してください。

num = int(input('请输入一个数:'))
if num % 2 == 0:
    print(f'{num}为偶数,从1到{num}是3的倍数有:')
    for x in range(1, num + 1):
        if x % 3 == 0:
            print(x)
else:
    print(f'{num}为奇数,从1到{num}是5的倍数有:')
    for x in range(1, num + 1):
        if x % 5 == 0:
            print(x)

 

3. 同じかごの中に鶏とウサギがいます。上から見ると頭が 35 本、下から見ると足が 94 本あります。鶏は何羽、ウサギは何匹いますか。

a = int(input('输入头的数量'))
b = int(input('输入脚的数量'))
print('鸡的数量是', int(a-((b-2 * a) / 2)), '只')
print('兔的数量是', int((b - 2 * a) / 2), '只')

4. 標準の水仙番号を印刷し、これらの水仙番号を出力します。

def num1():
    for num in range(100, 1000):
        a = num // 100
        b = num // 10 % 10
        c = num % 10
        if num == a ** 3 + b ** 3 + c ** 3:
            print("水仙花数为:%s" % num)


num1()

5. 50 から 150 までの素数は何ですか?

def a(num):
    for i in range(2, num // 2 + 1):
        if num % i == 0:
            return False
    return True


for i in range(50, 151):
    if a(i):
        print(f"{i}是质数")

6. 5 桁の数字の後に 7 を書くと 6 桁の数字 A が得られます。その前に 7 を書くと 6 桁の数字 B が得られます。B は A の 5 倍です. 5桁の数字の桁数を求めます。

def num():
    for i in range(10000,100000):
       num1=i * 10 + 7
       num2=i + 700000
       if num2==5*num1:
           print(i)
num()
    

7. コインの山があり、一度に 1 つまたは 2 つしか取れません。すべてのコインを取得する最小回数を求めてください [10、8、5、3、27、99]

coin = [10, 8, 5, 3, 27, 99]
x = 0
for i in coin:
    if i % 2 == 0:
        x += i // 2
    else:
        x += i // 2 + 1

print(f'{x}')

8. 2 つの素数の差が 2 のとき、この 2 つの素数を「双子数」といいます。100 以内の「双子数」をすべて求めてください。

print('0到100以内的孪生数对有:')
m = 2
for num in range(3,100,2):
    for i in range(2,num//2 + 1):
        if num % i == 0:
            break
    else:
        if num - m == 2:
            print(f'{m},{num}')
        m = num

9. 与えられたリストから最大値を見つけます (システム API は使用できません)、最小値、平均値、合計を見つけます。

n = int(input('请您输入您想输入的数字个数:'))
ls = []
for i in range(1,n+1):
    num = float(input(f'请输入第{i}个数:'))
    ls.append(num)
print(f'您输入的数字有:{ls}')
 
ma = ls[0]
mi = ls[0]
su = 0
for i in ls:
    su = su + i
    if i > ma:
        ma = i
    elif i < mi:
        mi = i
print(f'这些数的最大值为:{ma}')
print(f'这些数的最小值为:{mi}')
print(f'这些数的和为:{su}')
print(f'这些数的平均值为:{su/n}')

10. リスト内の重複データを重複排除し、少なくとも 2 つのソリューションを使用します。

ls = [1, 2, 3, 4, 4, 5, 6, 2, 3]
print(f'原列表为:{ls}')

# 方案一:set
ls = list(set(ls))
print(f'方案一去重后的列表为:{ls}')

# 方案二:遍历循环
ls1 = []
for n in ls:
    if n not in ls1:
        ls1.append(n)
ls = ls1
print(f'方案二去重后的列表为:{ls}')

11. 2 つのリストを結合する

ls1 = [1,2,3]
ls2 = [4,5,6]
print(f'ls1:{ls1}')
print(f'ls2:{ls2}')
 
ls1.extend(ls2)
print(f'将ls2合并到ls1中:{ls1}')
ls1 = [1,2,3]
ls2.extend(ls1)
print(f'将ls1合并到ls2中:{ls2}')

12. リストの反転 リストの並べ替え

ls = [1, 2, 4, 5, 3, 6]
print(f'ls:{ls}')

ls.reverse()
print(f'ls的反转:{ls}')

ls.sort()
print(f'ls的排序:{ls}')

13. 0~10をランダムにリストに格納する方法

import random
ls = []
while True:
    i = random.randint(0,10)
    if i not in ls:
        ls.append(i)
    if len(ls) == 11:
        break
print(f'ls = {ls}')

おすすめ

転載: blog.csdn.net/weixin_62304542/article/details/129719590