[Python基本チュートリアル]Pythonでのプログラムフロー制御ステートメント


序文

このブログでは、Python言語のフロー制御ステートメントについて説明します。高校では、数学のプログラムフローの問題を学びました。目標を達成するために、最初から段階的に、時には順番に、時には直面する必要があります。選択肢、時にはループに直面しています。ループと選択はプロセス全体を制御します。下の写真は見覚えがありますか?シーケンシャル構造は上から次のステップへと段階的に実行されるため、ここでは説明しません。Python言語の分岐ステートメントで冗談を言っているだけです。

ここに画像の説明を挿入


ブランチステートメント

Pythonでは、ブランチステートメントにはif ... elif ... else ... no switch ... case ...の場合のみが含まれ、関係者はif ...else...がすでに需要を満たすことができると考えています。ブランチステートメントの機能は、特定の状況に一致するデータを判断して除外することです。つまり、状況が異なれば、動作も異なります。

# 单分支结构
if 80>70:
    print('无敌666')
# 多分支结构
s=int(input("请输入您的考试成绩:"))
if 100>=s>=90:
    print("你的成绩无敌了")
    if s>95:
        print('你的成绩至高无上')
    else:
        print('你的成绩一人之下万人之上')
elif 90>s>60:
    print('你的成绩仅仅是合格')
else:
    print('你的成绩不合格,或输入不规范')

# 条件表达式【类似于C++语言中的三目运算符】
print("我是对的" if 90>80 else "我是错的")

# 占位符与对象的布尔值
# 每个对象都有布尔值,所以对象可以直接放到条件语句中,作为判别条件
# python中也是只有0或空为bool中的false
# 占位符就是当你不知道那里写什么,但确实缺少语句处站住位置,编译器不报错 pass
ss=int(input("输入对象:"))
if ss:
    print('yes')
    pass
elif ss>1:
    print('no')
else:
    pass

次に、ループステートメント

1.反復可能なオブジェクト

loopステートメントについて説明する前に、反復可能オブジェクトとは何かについて説明しましょう。反復可能オブジェクトは
、主にシーケンス、ファイルオブジェクト、反復子オブジェクト、ジェネレーター関数を含む、一度に1つの要素を返します。イテレータは、反復可能なデータのコレクションを表すオブジェクトです。その主な機能には、反復関数
を実装できるメソッド__iter __()および__next __()が含まれます。
ジェネレーターは、yieldステートメントを使用して、一度に1つの値を生成する関数です。範囲オブジェクトはイテレータオブジェクトです。
Pythonのloopステートメントは、whileループとforループに分けられます。

2.whileループ

while后面是循环条件,在下面的例子中i就是循环变量,当循环变量不满足循环条件时就退出循环
以下例子打印1-100的和

コードは次のように表示されます。

i=1
mysum=0
while i<=100:
   mysum+=i
   i+=1
#    print(mysum)
print(mysum)

3.forループ

for循环的使用方法如下,一般结合迭代器对象使用。

コードは次のように表示されます。


# for循环计算100-999之间的水仙花数

for temp in range(100,1000):
   if temp==(temp%10)**3+(temp//10%10)**3+(temp//100)**3:
      print(temp)
# 迭代打印语句
for _ in range(5):
   print('Hello World')


# 利用else 实现密码输入错误三次报错,以及输入正确跳出循环

passward=0
for passward in range(3):
   if input('请输入您的密码:')!='888888':
      print('密码输入错误!')
      passward+=1
   else:
      print('密码正确!')
      break
else:
   print('密码多次输入错误,自动退出!')

4.九九九九

# 综合案例,嵌套打印99乘法表
for teg in range(1,10):
   temp=1
   while temp<=teg:
      print(str(temp)+'*'+str(teg)+'='+str(teg*temp),end='  ')
      temp+=1
   print()

ここに画像の説明を挿入

3.ループ制御ステートメント

1.break

このループから飛び出す

2.続行

このサイクルをスキップする

3.goto


このステートメントは組み込みではありませんが、python-gotoなどの一部のサードパーティライブラリにはこのステートメントが含まれており、関心のあるパートナーはこれを使用できます。

4.else

これはまだ非常にユニークです。Pythonのloopステートメントはelseステートメントをサポートしています。
つまり、elseステートメントをloopステートメントの後に追加できます。実行されるelseコード
ブロックのコードの条件は、ループ本体が壊れていないことです。
また、例として九九を取り上げます。

for teg in range(1,10):
   temp=1
   while temp<=teg:
      print(str(temp)+'*'+str(teg)+'='+str(teg*temp),end='  ')
      temp+=1
   print()
else:
    print("asdholcnnl")

第四に、ループ関連の組み込み関数

1.enumerate()

この関数の機能は、トラバース可能なシーケンスにインデックスを追加することです。インデックスの開始値は、指定できるものです。

s=["Tom","jack","lisa"]
for i,name in enumerate(s,start=1):
    print(f"第{
      
      i}个人是{
      
      name}")

ここに画像の説明を挿入

2.zip()

複数のオブジェクトを並行してトラバースする必要がある場合は、この関数を使用してパックできます。zipの役割は、複数の反復可能なオブジェクトをタプルにパックし、反復可能なオブジェクトを返すことです。各圧縮反復可能長の長さが異なる場合は、最短の長さに従ってそれらをマージします。タプルは、*演算子を使用してリストにアンパックすることもできます。
[* zip(x、y)] x、yをパックしてから、リスト形式
zip(* zip(x、y))に変換します。x、yが行列を表す場合、zip(* zip(x、y))転置

for i,j in zip(range(0,10),range(0,10)):
    print(i*j)

ここに画像の説明を挿入

3.map()

map関数は、関数と複数の反復可能リストを渡すことができます。mapによって渡される関数がNoneの場合、map関数はzip関数と同じです。
他の関数が渡されると、その関数は各オブジェクトに適用されます。
反復可能なオブジェクトの数は、関数に渡されるパラメーターの数と一致している必要があることに注意してください。

#结果1,1,12
list(map(abs,[-1,-1,-12]))
#结果1 1 4
list(map(pow,range(3),range(3)))


要約する

このブログでは、主にフロー制御ステートメントの分岐ステートメントとループステートメントを共有しています。分岐ステートメントの操作は比較的簡単です。アルゴリズムの問​​題を記述しているかどうかに関係なく、主にループステートメント、特にループステートメントのいくつかの組み込み関数をマスターします。またはaは、データ分析で一般的に使用されます。


ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/apple_51931783/article/details/123095598