峠トレーニングプラットフォーム Python

目次

Python 初体験 - Hello world

レベル 1 やあ、パイソン、来たよ!

Python制御構造(1)※

レベル1 ifブランチ入門※

レベル2 whileループ分岐入門※

Learning-Python ループ構造 for...else... 水仙の数を見つける

レベル 1 の学習 - Python ループ構造 for...else...水仙の数を見つける

Python プログラミング_トレーニング 4_loop 文のトレーニング

レベル 1 の素数

レベル 2 最大公約数

レベル 3 素数の数

レベル 4 ゴールドバッハの予想

演習 - Python 関数の関数戻り値

レベル 1 演習 - Python 関数の関数戻り値

学習 - Python 関数の関数再帰呼び出し

レベル 1 の学習 - Python 関数の関数再帰呼び出し

演習 - Python リスト II の適用

レベル 1 演習 - Python リスト II の適用

演習 - Python Tuples II の適用

レベル 1 演習 - Python Tuples II の適用

演習 - Python 辞書の応用 II

レベル 1 演習 - Python 辞書アプリケーション II

演習 - Python の例外処理 try...except...

レベル 1 演習 - Python 例外処理 try...except...

演習-Python の例外処理 try...except...else...

レベル 1 演習 - Python 例外処理 try...except...else...

Python 初体験 - Hello world

レベル 1: やあ、パイソン、来たよ!

ミッション詳細

Python プログラミング言語は簡潔で読みやすく、対話型プログラミングとスクリプト プログラミングの 2 つの異なるモードが用意されているため、学習者は簡単に始めることができます。このレベルのタスクは次のとおりです: (1) 完全な印刷Hello world 、整数の加算と減算、およびHelpコマンドを使用して、対応する組み込み関数の使用方法などを問い合わせる; (2) Python が提供する組み込み関数を使用して印刷print()するHello world .

# coding=utf-8
# 请在此添加代码,实现编程要求
########## Begin ##########
print('Hello Python')
########## End ##########

Python制御構造(1)※

レベル1:ifブランチ入門※

プログラミング要件

プロンプトに従って、右側のエディターBegin-Endでコードを補足し、次の要件を完了します。

最初の質問

31日を[1,3,5,7,8,10,12]とする月

1~12入力された整数に対応する月が31日なら出力しyes、そうでなければ出力するプログラムを書いてくださいno

2番目の質問

天気予報では一般的にハリケーンを風速で分類し、その対応関係を下の表に示します。

風速 74-95 96-110 111-130 131-154 155以上
レベル 1 2 3 4 5

ユーザーが入力した風速に応じて、対応するハリケーン レベルを出力するプログラムを作成してください。

# 第一题

month = int(input())
# 31天的月份:1~7之间的奇数月、8~12之间的偶数月
# 如果是31天的月份输出yes
####### begin #######
if month in [1,3,5,7,8,10,12]:
    print("yes")
####### end #########
# 如果不是31天的月份,输出no
####### begin #######
else:
    print("no")
####### end #########
print('\n***********************\n')

#第二题
# 从测试集得到风速
velocity = int(input())
# 默认是0级
rank = 0
# 如果风速在74到95之间,输出1
####### begin #######
if 74<=velocity<=95:
    rank=rank+1
####### end #########
# 如果风速在96到110之间,输出2
####### begin #######
elif 96<=velocity<=110:
    rank=rank+2
####### end #########
# 如果风速在111到130之间,输出3
####### begin #######
elif 111<=velocity<=130:
    rank=rank+3
####### end #########
# 如果风速在131到154之间,输出4
####### begin #######
elif 131<=velocity<=154:
    rank=rank+4
####### end #########
# 如果风速大于155,输出5
####### begin #######
elif velocity>=155:
    rank=rank+5
####### end #########
print(rank)

レベル2:whileループ分岐入門※

プログラミング要件

プロンプトに従って、右側のエディターBegin-Endでコードを補足し、次の要件を完了します。

最初の質問

次の式の値をプログラムで計算します。

12+32+52+...+9952+9972+9992

結果を出力します

2番目の質問

ステートメントを使用してwhileプログラム ロジックを完成させ、次のアルゴリズムを見つけて平方根 x の近似値を見つけます。(たとえば、アルゴリズムが約を出力するx場合31.7320508

アルゴリズムは次のとおりです。

  1. 入力xx負の数の場合、「実数なし」を出力し、アルゴリズムは終了します。

  2. 注文g=x/2;

  3. ∣x−g∗g∣<10−6次の式でエラー値を計算しますg

  4. それ以外の場合は、(g+x/g)/2新しい推測値として使用され、 として記録されますg

  5. 手順 3 と 4 を繰り返します

from math import *

i = 1 # 当前计算的值
s = 0 # 计算出来的和
# 第一题
########### begin ##########

# 请在此输入循环控制语句
while i<=999:
######### end     ####
    s = s + i ** 2
    i = i + 2

print(s)

########## 第二题 ##############
x = int(input())

if x<0:
    print('无实数解')
else:
    g = x/2
    #######begin##############
    # 请输入循环控制语句
while abs(x-g*g)>=0.000001:
    #######end#################
        g = (g+x/g)/2
print(g)

Learning-Python ループ構造 for...else... 水仙の数を見つける

レベル 1: 学習 - Python ループ構造 for...else... 水仙の数を見つける

ミッション詳細

このレベルのタスク: 整数 n が与えられたとき、n 内の正の数に水仙の数が含まれているかどうかを判断します。水仙の数は、各桁の数字の 3 乗の合計がそれ自体に等しい 3 桁の整数を指します。

i= int(input())
for num in range(2,i):
    a = num % 10
    b =(( num -a)/10)%10
    c = (num - b* 10 - a) /100
#print(‘num’, num)
#print(a)
#print(b)
#print©
    if num == a**3 + b**3 +c**3:
        print("有水仙花数")
        break
else:
    print('没有水仙花数')

Python プログラミング_トレーニング 4_loop 文のトレーニング

レベル 1 の素数

ミッション詳細

このレベルのタスク: より大きい を入力し1intそれが素数かどうかを判断します。

素数なら出力するPrimeそれ以外の場合は、 を出力しますHeshu

関連情報

素数とは1和以外の因数を持たない数のことです。

たとえば、の因数は と の和だけな7ので素数ですの因数がsumに追加されるため、素数の代わりに.71799193

n=int(input())
from math import sqrt
m=int(sqrt(n))
for i in range(2,m+1):
    if n%i==0:
        print("Heshu")
        break
else:
    print("Prime")

レベル 2 最大公約数

ミッション詳細

このレベルのタスク:2正の が与えられた場合int、その最大公約数を見つけます。

関連情報

和のいわゆるa最大公約数はの因数であるだけでなくの因数でもbあり、条件を満たす数の中で最大のものです。ab

たとえば128は合計の公約数であり合計の最大公約数1/2/4です。4128

#********** Begin **********#
def gcd(a,b):
    if a<b:
        a,b=b,a
    while(a%b !=0):
        c=a%b
        a=b
        b=c
    return b
a,b=map(int,input().split())
c=gcd(a,b)
print(c)
#********** End **********#

レベル 3 素数の数

ミッション詳細

このレベルのタスク:[a,b]区間内の素数の数を見つけます。

2正の整数の合計を入力しab答えを出力します。(保証a≤b)

特に、1素数ではないことに注意してください。

関連情報

最も簡単な方法を考えてみましょう。最初にforfrom からato へのループを書きますb次に、それぞれの数が素数かどうかを判断します。そして、素数の判定にはループが必要なので、二重ループを書く必要があります。

#********** Begin **********#
n=0
a,b=input().split()
a=eval(a)
b=eval(b)
for i in range(a,b+1):
    if i ==1:
        n=n+1
        continue
    for d in range(2,i):
        if i%d==0:
            n=n+1
            break
print (b-a-n+1)
#********** End **********#

レベル 4 ゴールドバッハの予想

ミッション詳細

このレベルのタスク: 与えられた正の偶数を素数の和intに分解します22素数を小さいものから大きいものまで、スペースで区切って出力します。(複数の可能性がある場合は、できるだけ異なる回答を出力してください。)

たとえば、入力6、出力は次のようになります。3 3入力の場合10“3 7”両方“5 5”しかし、2前者の素数はもっと異なるので、答えは次のようになります。3 7

#********** Begin **********#
import math
n=int(input())
a=2
b=n-a
gede1,gede2=1,1
while gede1==1 or gede2==1:
    if a==2:
        gede1=0
    else:
        for i in range(2,a):
            if a%i == 0:
                gede1 = 1
                break
            else:
                gede1 = 0
    if b == 2:
        gede2 = 0
    else:
        for i in range(2,int(math.sqrt(b))+2):
            if b%i == 0:
                gede2 = 1
                break
            else:
                gede2 = 0
        if gede1 == 1 or gede2 == 1:
            a = a+1
            b = n-a
print('{} {}'.format(a,b))
#********** End **********#

演習 - Python 関数の関数戻り値

レベル 1 演習 - Python 関数の関数戻り値

ミッション詳細

このレベルのタスク: 関数 average を定義します, これはテストスコアの平均スコアを計算するために使用されます. 毎回渡されるパラメータの数は不明です. この関数を実現するコードを書いてください.

"""
任务:定义一个函数 average,用于计算考试成绩的平均分,每次传入的参数个数不确定,如果参数中出现了小于 0 或者大于 100 的数时,输出"分数数据异常",否则输出平均分。
"""
 
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 定义函数 average,计算平均分并按照要求打印结果
def average(*args):
    num = 0 
    for x in args:
        if x<0 or x>100:
            return
        num += x
    return num/len(args)
##########End##########
# 请勿修改下列代码
score = eval(input())     # 将输入的字符串转换为可执行的表达式
if score:
    print("平均分为",score)
else:
    print("分数数据异常")
"""
任务:定义一个函数 average,用于计算考试成绩的平均分,每次传入的参数个数不确定,如果参数中出现了小于 0 或者大于 100 的数时,输出"分数数据异常",否则输出平均分。
"""

 
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 定义函数 average,计算平均分并按照要求返回结果
def average(*args):
    n=len(args)
    sum1=0
    for i in args:
        if 0<=i<=100:
            sum1+=i
        else:
            return False
    return sum1/n

##########End##########
# 请勿修改下列代码
score = eval(input())     # 将输入的字符串转换为可执行的表达式
if score:
    print("平均分为",score)
else:
    print("分数数据异常")

学習 - Python 関数の関数再帰呼び出し

レベル 1 の学習 - Python 関数の関数再帰呼び出し

ミッション詳細

フィボナッチ数列は 3 番目の項目から始まる指数シーケンスであり、各項目は前の 2 つの合計に等しくなります。例えば:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610......


"""
任务:使用递归打印斐波拉契数列的前 n 位数字。n 通过 input 函数获取。
"""

 
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 定义一个函数,使用递归打印斐波拉契数列的前 n 位数字
n=eval(input())
def he(x):
    if x==1 or x==2:
        return 1
    else:
        a=he(x-1)+he(x-2)
        return a
print(he(n))
 
########## End ##########

演習 - Python リスト II の適用

レベル 1: 演習 - Python リスト II の適用

ミッション詳細

このレベルのタスク: 与えられた配列に対して、for ループを使用して配列をコピーし、リスト内の重複要素を削除して、最後にリストを並べ替えます。重複排除およびソートされたコピー リストを印刷します。

"""
任务:给定一个数组,使用 for 循环复制这个数组,然后去除列表内的重复元素,最后对列表进行排序。打印去重且排序后的复制列表。
"""
 
list1 = [88,5,8,6,1,23,1,15,1,61,31,6,51,1,984,9849,1,-100,513,891,3,1,48,465,132,165,4,6,132,498,46,132,165,468,498,484,11,6,84,65,132,1,64,684,6981,324,984,61,32,468,4651,6,4,9814,654,984,68,7]
 
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 使用 for 循环复制这个数组,然后去除列表内的重复元素,最后对列表进行排序。打印去重且排序后的复制列表
list2=list(set(list1))
for i in list2:
    n=list2.count(i)
    if n>1:
        for j in range(1,n):
            del list2[list2.index(i)]
list2.sort()
print(list2)
##########End##########

演習 - Python Tuples II の適用

レベル 1: 演習 - Python Tuples II の適用

ミッション詳細

このレベルのタスク: タプルが与えられた場合、リストとタプルの間の相互変換を使用してタプルの要素を変更し、タプル内の整数データを削除します。

"""
任务:给定一个元组,利用列表和元组的相互转换实现元组元素的更改,去除元组中的整型数据。打印更改后的元组。
"""
tup = (1,"3",4,5,"4","a",(1,2,3,4),"b","c",6,17,"d",("a","b","c"),0,"e","f",True,10,"False",11,"h","A","B","C",30,"D",-35,-60,(-1,-2,-5))
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 利用列表和元组的相互转换实现元组元素的更改,去除元组中的整型数据
list1 = []
for x in tup:
    if type(x) != int:
        list1.append(x)
print(tuple(list1))
##########End##########

演習 - Python 辞書の応用 II

レベル 1 演習 - Python 辞書の応用 II

ミッション詳細

このミッション: 辞書が与えられた場合、辞書の値は整数データのみにすることができます。たとえば、キーは数値の文字型ですが、辞書内のキーと値のペアはすべてこの規則に従って並べ替えられているわけではありません{"5":5}。場合によって{"5":4}は、ディクショナリの値をキーと一致する整数値に変更するコードを記述してください。

"""
任务:给定一个字典,该字典的值只能是整型数据,键为该数字的字符型,比如`{"5":5}`。
但是字典中的键值对并不是都按照这个规则排序的,可能出现`{"5":4}`的情况,请编写代码将字典的值改为和键一致的整型数值。
例如:{"5":4,"3":2}改为{"5":5,"3":3}
"""
 
dict1 = {"4":3,"14":14,"5":6,"33":33,"25":25,"18":68,"0":0,"10":3,"42":24,"7":1,"64":64,"49":49,"90":90,"48":48,"68":86,"41":12,"46":46,"91":91,"75":75,"27":39,"34":3,"57":11}
 
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 请编写代码实现任务要求,打印更改后的字典
for i in dict1:
    if eval(i)!=dict1[i]:
        dict1[i]=eval(i)
print(dict1)
##########End##########

演習 - Python の例外処理 try...except...

レベル 1: 実践 - Python 例外処理 try...except...

ミッション詳細

このレベルのタスク: 与えられた 2 つの数値の商を見つけ、除数が 0 であるという例外をキャッチします。

プログラミング要件

右側の編集領域にあるコード フレームとコメントを注意深く読み、プロンプトに従って Begin-End の間にプログラム コードを記述します。具体的な要件は次のとおりです。

  • 2 つの入力関数を使用して被除数と除数を受け取ります。1 つ目は被除数の受け取りに使用され、2 つ目は除数です。
  • 2 つの数値の商を求め、例外がない場合は結果を出力し、0 の除数に例外がある場合は例外をキャッチし、例外をキャッチした後にプロンプ​​ト ステートメントを出力します:「除数を 0 にすることはできません」 .
    # 请在下面的 Begin-End 之间按照注释中给出的提示编写正确的代码
    ########## Begin ##########
    # 计算两个数的商,捕获除数为 0 时的异常
    try:
        a=eval (input())
        b=eval (input())
        print(a/b)
    except:
        print("除数不能为0")
    
    ########## End ##########

演習-Python の例外処理 try...except...else...

演習 1 - Python の例外処理 try...except...else...

ミッション詳細

このレベルのタスク: 5 つの整数を取得し、それらをリストに入れます。

プログラミング要件

右側の編集領域にあるコード フレームとコメントを注意深く読み、プロンプトに従って Begin-End の間にプログラム コードを記述します。入力関数を使用して背景データを 5 回取得し、5 つのデータが数値の場合は、数値をリストに追加してリストを出力します。整数でないデータがある場合は、「整数を入力してください」と出力します。

# 请在下面的 Begin-End 之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 获取 5 个整数,放入一列表中,如果 5 个数都是整数,则打印该列表
list1 = []
for i in range(5):
    try:
        j=int(input())
    except:
        print('请输入整数!')
        break
    else:
        list1.append(j)
if len(list1) == 5:
    print(list1)

おすすめ

転載: blog.csdn.net/qq_58715818/article/details/121448679