オペレーターとブランチの構造
オペレーター
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)
- 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.割り当て演算子:=、+ =、-=、* =、/ =、%=、// =、** =
すべての割り当て操作は、変数に値を割り当てるために使用され、割り当て演算子の左側は変数である必要があります;
複合割り当て操作の左側の変数は、すでに割り当てられている変数である必要があります。
-
=
a = 10 -
複合割り当て演算子
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.プロセス制御
- シーケンス構造-各ステートメントを上から下に順番に実行します(デフォルト)
2)ブランチ構造-条件に従ってコードを選択的に実行します(ifステートメント)
3)ループ構造-コードを繰り返し実行できるようにします(forループ、whileループ)
2.分岐構造
1)単一分岐構造の場合-条件が満たされた場合に操作を実行するには、条件が満たされない場合は
「 "」
構文は実行されません:
if条件ステートメント:
コードセグメント
説明:
- if-キーワード、固定書き込み
- 条件付きステートメント-結果が得られる任意の式:任意のタイプのデータ、割り当てステートメント以外の演算子
式、関数呼び出し式。(割り当てステートメントを除くすべての式) - コロン固定の書き込み。
(通常、pythonのコロンは、コードブロックを示すために、改行の後にインデントする必要があります) - コードセグメント-
条件が満たされた場合にのみ実行される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( '非飛躍年')
- 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( '奨学金なし')