2020_9_23_オペレーターとブランチの構造

オペレーターとブランチの構造

オペレーター

pythonでサポートされている演算子:数学演算子、比較演算子、論理演算子、割り当て演算子、ビット単位の操作(理解)
1。数学演算子:+(加算演算)、-(減算演算)、(乗算演算) 、/(除算演算)、%(残り、弾性率)、//(除算)、**(電力演算)
1)+、-
、、 /は、数学の+、-、×、÷とまったく同じ機能を持っています
print(5 + 2)#7
print(5-2)#3
print(5 * 2)#10
print(5/2)#2.5

2)%-残りを取り、係数を取ります(数学の残り)
x%y-xの残りをyで割ったものを見つけます
print(10%3)#1

アプリケーション1:数値を別の数値で割り切れるかどうかを判断する
x%yは0です。つまり、xはyで割り切れます
。num= int(input( '整数を入力してください:'))
num = 23
print(num%3 )

アプリケーション2:整数の下位桁を
取得x%10-xの1桁を取得; x%100-xの最後の2桁を取得;…

任意の整数の1桁を取得
print(123%10)#3
print(92831%10)#1

3)//-
除算(丸められた商)x // y-xをyで割った商を、
切り上げられた小さい方に丸めます:1.9-> 1 -1.9-> -2 3.4-> 3
print(5 // 2)#2
print(-5 // 2)#-3

アプリケーション:下位桁を削除する
678 // 10-> 67 678 // 100-> 6
num = 23562
print(num // 100)#235

演習:100を超える任意の数の百桁を取得します
234-> 2 1345-> 3 78623-> 6
"" "
234 // 100-> 2%10-> 2
1345 // 100-> 13%10-> 3
78623 // 100-> 786%10-> 6

234%1000-> 234 // 100-> 2
1345%1000-> 345 // 100-> 3
78623%1000-> 623 // 100-> 6
"" "
num = 23232
num = int(input( 'Please 100より大きい整数を入力してください: '))
method one
print(num // 100%10)

メソッド
2print(num%1000 // 100)

4)**-指数
x ** y-> xをyの累乗で見つける
print(2 ** 3)#8
print(3 ** 3)#27

累乗の数が1 / Nの場合、Nの累乗で開くことを意味し
ますprint(4 ** 0.5)#2.0
print(8 **(1/3))#2.0

2.比較演算子:>、<、> =、<=、==、!=
すべての比較演算子の結果はboolean
print(10> 20)#False
print(10 <20)#True
print (10> = 10)#True
print(10 == 10)#True
print(10!= 10)#False

注:Pythonの比較演算子は、値の範囲
age = 32
print(18 <= age <= 28)を示す連続書き込みをサポートしています。

3.論理演算子:and(logical and)、or(logical or)、not(logical negation)

  1. and-論理および
    "" "
    アプリケーションシナリオ:人生の" and "と同等であり、複数の条件を同時に満たす必要がある場合に使用されます。
    操作ルール:すべてがTrueの場合、結果はTrueであり、1つがFalseである限り、結果はFalseTrue
    およびTrueです。 -> True
    True and False-> False
    False and True-> False
    False and False-> False
    "" "
    奨学金の条件:3.5以上の
    グレードポイントと90以上の運用スコアグレード= 3.9
    スコア= 98
    print( 'かどうか奨学金を取得できます: '、グレード> 3.5、スコア> = 90)

演習:数値を3と7で同時に割り切れるかどうかの条件
num = 67を記述します。
方法1:
print( '3と7で同時に割り切れるかどうか:'、num%3 == 0とnum%7 == 0)

方法2:
print( '3と7で同時に割り切れますか:'、num%21 == 0)

2)または-論理OR操作
"" "
アプリケーションシナリオ:人生で"または"と同等であり、
操作ルールは、複数の条件の1つのみが満たされた場合に使用されます。1つがFalseである限り、結果はFalseです。 Trueの結果はTrueTrue
またはTrue-> TrueTrue
またはFalse->
TrueFalseまたはTrue->
TrueFalseまたはFalse-> False
"" "
演習:飛躍年を判断するための条件を記述します。
飛躍年-4で割り切れますが、100で割り切れません、または400
年で
割り切れる= 2012 4で割り切れる%4 == 0
100で割り切れない:年%100!= 0
400で割り切れる:年%400 == 0
print( 'それは飛躍年ですか:' 、(年%4 == 0および年%100!= 0)または年%400 == 0)

3)非論理的NOT操作
"" "
アプリケーションシナリオ:特定の条件を無効にする
操作ルール:TrueはFalseになり、FalseはTrueになります。Trueで
はありません-> False
not False-> True
" ""
age = 18
print(not age> 18)#真

使用しない場合:条件を順方向に書き込むのが非常に面倒であるが、逆方向に書き込むのは簡単な場合は、条件を逆方向に書き込んでから追加しないでください。
練習:3と7で同時に割り切れない条件を書く
num = 12
方法1:
print( (num%3!= 0およびnum%7!= 0)または(num%3 == 0およびnum%7!= 0)または(num%3!= 0およびnum%7 == 0))
方法2 :
印刷(num%21 == 0ではない)

4)*短回路動作
と短絡動作:条件1と条件2-条件1がFalseの場合、条件2に対応するコードは
次の短絡動作を実行ません:条件1または条件2-条件1がTrueの場合、条件2対応するコードは
Falseを実行せず、print( '=====')
Trueまたはprint( '+++++')

5)*オペランドはブール値ではありません
"" "
実際の開発では、オペランドと論理演算子の結果は一般にブール値ですが、インタビューでは、オペランドがブール値ではない場合を検討したいと思います。

式1および式2-式1の結果がTrueの場合、操作の結果は式2の値になります。
式1の結果がFalseの場合、操作の結果は式1の値になります。
式1または式2-式1の結果がFalseの場合、操作の結果は式2の値になります。
式1の結果がTrueの場合、操作の結果は式1の値になります。

注:式の値がブール値でない場合は、ブール値に変換して
から変換方法を判断してください:任意のタイプのPythonデータをブール値に変換でき、0で空のすべての値はFalseに変換され、
他の値はTrueになります
" ” "
a。ブール変換
print(bool(0)、bool(0.0))#False False
print(bool(100)、bool(-1000))#True True
print(bool( '')、bool(" " ))#False False
print(bool( 'False')、bool( ''))#True True

print(5 and 3)#3
print(0 and 3)#0

print(5または3)#5
print(0または3)#3

print( 'abc'および '123')
print(Falseまたは '123')

4.割り当て演算子:=、+ =、-=、* =、/ =、%=、// =、** =
すべての割り当て操作は、変数に値を割り当てるために使用され、割り当て演算子の左側は変数である必要があります;
複合割り当て操作の左側の変数は、すでに割り当てられている変数である必要があります。

  1. =
    a = 10

  2. 複合割り当て演算子
    a + = 3#a = a + 3
    print(a)#13

a = 2#a = a 2 = 13 * 2
print(a)#26

a%= 3#a = a%3 = 26%3
print(a)#2

5.
演算子の優先順位数学演算子>比較演算子>論理演算子>割り当て演算子(最低)
数学演算子:**> *、/、%、//> +、-
論理演算子:および>または
、括弧がある場合は、最初に括弧内のコンテンツをカウントします
print(2 * 3 ** 2)#18

6. *ビット操作:&(ビット単位のAND)、|(ビット単位のOR)、^(ビット単位のXOR)、〜(ビット単位の反転)、>>(右シフト)、<<(左シフト)
ビット操作の計算効率は通常の演算子よりも高い(数十倍から数百倍)

アプリケーション1:整数のパリティを決定する-数値に対してビット単位のAND演算を実行します。結果が1の場合、それは奇数であり、結果が0の場合、偶数です
print(28&1、10&1、102&1、-20&1)# 0 0 0 0
print(11&1、9&1、-23&1、1005&1)#1 1 1 1

アプリケーション2:
数値<< N-2をすばやく乗算N
数値>> N-2つの

数値をすばやく除算<< 1-すばやく乗算2:数値* 2
数値>> 1-すばやく除算2:数値//
2print(4 << 1、5 << 1、5 << 2)#8 10 20
print(4 >> 1、5 >> 1、-5 >> 1)#2 2 -3

分岐構造

1.プロセス制御

  1. シーケンス構造-各ステートメントを上から下に順番に実行します(デフォルト)
    2)ブランチ構造-条件に従ってコードを選択的に実行します(ifステートメント)
    3)ループ構造-コードを繰り返し実行できるようにします(forループ、whileループ)

2.分岐構造
1)単一分岐構造の場合-条件が満たされた場合に操作を実行するには、条件が満たされない場合
「 "」
構文は実行されません
if条件ステートメント:
コードセグメント

説明:

  1. if-キーワード、固定書き込み
  2. 条件付きステートメント-結果が得られる任意の式:任意のタイプのデータ、割り当てステートメント以外の演算子
    式、関数呼び出し式。(割り当てステートメントを除くすべての式)
  3. コロン固定の書き込み。
    (通常、pythonのコロンは、コードブロックを示すために、改行の後にインデントする必要があります)
  4. コードセグメント-
    条件が満たされた場合にのみ実行されるif;コードで(タブによって)インデントされる1つ以上のステートメント

実行プロセス:
最初に条件ステートメントがTrueかどうかを判断し(ブール値でない場合はブール値に変換してから判断します)、
Trueの場合はコードセグメントを実行します。そうでない場合、コードセグメントは実行されません
"" "
条件ステートメントは割り当てステートメント以外の任意の式にすることができます
100の場合:
合格

'abc'の場合:
合格

10 + 20の場合:
合格


%2 + 3の場合、a = 100
合格

注:
ifの後の割り当てステートメントは、a = 20の場合はできません
合格

コードセグメント条件が満たされた場合にのみ実行される場合に後に
印刷(「=======」)
10> 20であれば:
プリント(「+++++++」)
印刷( '------ -')

演習:整数を入力し、偶数の場合は、「この数値は2で割り切れる」と
出力します。num= int(input( '整数を入力してください:'))
num = 25
if num&1 == 0:
print(num、 'この数は2 'で割り切れます)

if num&1:
print( 'この番号は奇数です')

ifステートメントのコードセグメントには少なくとも1つのステートメントが必要です。不明な場合は、パスを使用して、
num%5 == 0:
passの場合に位置を占めることができます

2)二重分岐構造の場合-条件が満たされたときに操作を実行し条件が満たされない場合は別の操作を実行します。
"" "
構文:
if条件ステートメント:
コードブロック1(条件が満たされたときに実行されるコード
else:
コードブロック2(満たされない実行する条件コード)

実行プロセス:
最初に条件ステートメントが真であるかどうかを判断し、真である場合はコードブロック1を実行し、そうでない場合はコードブロック2を実行します
"" "
演習1:入力した数値が偶数の場合は偶数」を出力し、そうでない場合は「奇数」を出力します
num = 25
if num&1 == 1:
print( 'odd')
else:
print( 'even')

演習2:年齢入力値print'Adult 'または' Minor '
Age = 14
IF Age> = 18 is:
Print(' Adult ')、
else:
Print(' minor ')

演習3:年とprint'leap年「と入力
or'non年の値に応じて-leap年」を= 2012年
!:年%4 == 0年%100 = 0または年%400 == 0の場合
、印刷( 『うるう年』)
他:
print( '非飛躍年')

  1. ifマルチブランチ構造-さまざまな条件に応じてさまざまな操作を実行
    "" "
    構文:
    if条件ステートメント1:
    コードブロック1
    elif条件ステートメント2:
    コードブロック2
    elif条件ステートメント3:
    コードブロック3

    else:
    コードブロックN

実行プロセス:
最初に条件ステートメント1がTrueかどうかを判断し、コードブロック1を直接実行する場合は、構造全体が直接終了します
。Trueでない場合は、条件ステートメント2がTrueかどうかを判断し、Trueの場合は、コードブロック2を実行します。 if構造全体が終了します
。Trueでない場合は、条件ステートメント3がTrueかどうかを判断し、...
など、前の条件ステートメントが満たされない場合は、elseの後にコードセグメント
"" "を実行します
演習:学生の成績ポイントを入力し、学生が
授業料を受け取ることができるレベルを判断するファーストクラス:グレードポイント> 4
セカンドクラス:3.5 <=グレードポイント<= 4
サードクラス:3 <=グレードポイント<3.5
フォースクラス:2.5 <=グレードポイント<3
いいえ:グレードポイント<2.5
grade = 4.1
if grade> 4:
print( 'first-class scholarship')
elif grade> = 3.5:
print( 'second-class scholarship')
elif grade> = 3:
print( 'third-class scholarship')
elif grade> = 2.5:
print( '第4級奨学金')
else:
print( '奨学金なし')

おすすめ

転載: blog.csdn.net/xdhmanan/article/details/108761972