Skip to content

python3講習 第2回目 制御構造ツール

環境

  • python 3.9 ,3.10 ,3.11
  • ThinkPad L380 ubuntu22.04.3tls
  • ThinkPad P1 Gen 3 Windows10

if文

  • if文は条件に応じて異なるコードブロックを実行します。
  • 条件がTrueの場合、ifブロックが実行されます。

例:

x = 10

if x > 5:
    print("xは5より大きい")
elif x == 5:
    print("xはちょうど5です")
else:
    print("xは5より小さい")


xは5より大きい

for文

  • for文はイテラブルオブジェクト内の要素を繰り返し処理します。
  • リスト、タプル、文字列などのイテラブルオブジェクトに対して使用できます。

例:

fruits = ["りんご", "バナナ", "オレンジ"]
for fruit in fruits:
    print(fruit)

りんご
バナナ
オレンジ

range関数

  • range()関数は指定された範囲の整数のシーケンスを生成します。
  • 通常、forループと組み合わせて使用されます。

例:

for i in range(5):
    print(i)
    0
1
2
3
4

break文とcontinue文,ループにおけるelse文

  • break文はループを強制的に終了します。
  • continue文は現在のイテレーションをスキップし、次のイテレーションに進みます。
  • ループにおけるelse文はループが正常に終了した場合に実行されます。
for n in range(2,10):
    for x in range(2,n):
     if n % x ==0:
        print(n,'equals',x,'*',n//x) 
        break
else:
    print(n,"is a prime number")

4 equals 2 * 2
6 equals 2 * 3
8 equals 2 * 4
9 equals 3 * 3
9 is a prime number

pass文

  • pass文は何もしないステートメントです。
  • 一時的にコードのブロックを空にするために使用されます。

例:

if True:
    pass

関数の定義

  • 関数は複数の文をまとめた再利用可能なコードブロックです。
  • defキーワードを使用して関数を定義します。

例:

def greet(name):
    print("こんにちは, " + name)

greet("Altair")

こんにちは, Altair

キーワード引数

  • キーワード引数を使用すると、引数の順序を気にせずに関数を呼び出すことができます。

例:

def show_info(name, age):
    print("名前:", name)
    print("年齢:", age)

show_info(age=25, name="Bob")

名前: Bob
年齢: 25

lambda式

  • lambdaを使用して無名の小さな関数を作成できます。
  • 通常、簡単な操作に使用されます。

例:

square = lambda x: x**2
print(square(4))

16

課題

1から10までの整数をループで表示し、偶数の場合には"偶数"と表示し、奇数の場合には"奇数"と表示するプログラムを書いてください.


for num in range(1, 11):
    if num % 2 == 0:
        print(f"{num}は偶数")
    else:
        print(f"{num}は奇数")

1は奇数
2は偶数
3は奇数
4は偶数
5は奇数
6は偶数
7は奇数
8は偶数
9は奇数
10は偶数

おまけ

シリアル通信で遊ぼう

import serial

ser = serial.Serial('/dev/ttyACM0', 9600,timeout=None)# "COM19"
while True:
    line = ser.readline() # ここで一行データを取得するがbyte型
    stripped_str = str(line, 'ascii').strip() # byte型を文字列に変換して前後の空白改行除去
    data = int(stripped_str) # 文字列を数値に解釈し直す
    print(data)
//Arduino
void setup() {
  Serial.begin(9600);
}

int data = 0;
void loop() {
  data++;
  Serial.println(data); 
  delay(1000);
}

Note

著者:Shion Noguchi