2018-09-29 Day 5サイクルとブランチ

6880 ワード

01-if文
pythonの分割構造はif構造のみでswitchはありません
1.ifは、プログラムが判断に用いられる(ある条件を満たすときに、何をするかを考慮する必要がある場合はifを用いる)
importは、1つのモジュール/パケットをインポートするキーワードrandomモジュールにランダム数に関連する多くの機能を提供するimport random randint(m,n)--->mからnまでのランダム数(整数)num=randomを生成する.randint(0,10)print(num,'は偶数')
2.if構造:
a.構文:if条件文:文ブロックの実行
b.if->pythonであることを示すキーワード条件文->最終的に値が必要であり、字面量であっても変数であってもよい...一般に、結果はブール値であることが要求されます.->固定書き方実行文ブロック->1行または複数行のコードであってもよい.このコードのコードは、前のifとインデントc.実行プロセスを保持する必要があります.まず、条件文の結果がTrueであるかどうかを判断し、Trueの場合はコロンの後の実行文ブロックを実行します.そうでなければ実行せずif構造の後の他の文を直接実行します.d.注意:条件を満たしてから実行するコードはifに書き、条件が成立するかどうかにかかわらず実行するコードはifの外に書きます.しかしifがあればifには少なくとも1つの文が必要です
print(num)
if num&1 == 0:
    print('   ')
print('======')

練習:文字列のランダムな位置にある文字がアルファベットかどうかを判断し、「文字がアルファベット」であれば、アルファベットかどうかにかかわらず取り出した文字を印刷します.
str1 = '26hhj88(jk'
index = random.randint(0, len(str1)-1)
char = str1[index]
print(char)

アルファベットかどうかを判断する
 if 'a'<=char<='z' or 'A'<=char
if char.isalpha():
    print('      ')  

3.if-else構造
構文:if条件文:文ブロック1 else:文ブロック2
実行プロセス:条件文がTrueであるかどうかを判断し、Trueである場合は文ブロック1を実行し、そうでない場合は文ブロック2を実行する
num = 11

if num%2 == 0:
    print('   ')
else:
    print('   ')

print('   ')

4.if-elif-else構造
構文:if条件文1:文ブロック1 elif条件文2:文ブロック2 else:文ブロック3
実行プロセス:条件文1が成立するか否かを判断し、直接的性質文ブロック1が成立するとif構造全体が終了する.成立しなければ,条件文2が成立するか否かを判断する.条件文2が成立すると、文ブロック2が実行され、if構造全体が終了する.条件文2が成立しない場合は、文ブロック3を実行する
注意:if-elif-else構造では、elifは状況に応じて複数あります.elseは省略できますが、elseがあれば、elseは最後の練習に書きます.ランダムに0-100の年齢値を生成し、年齢によって人がどの段階にあるかを決定します.0-3歳--->幼児4-12歳--->児童13-18-->少年19-->28青年29以上----老年
age = random.randint(0, 100)
print(age)
if age<=3:
    print('  ')
elif age<=12:
    print('  ')
elif age<=18:
    print('  ')
elif age<=28:
    print('  ')
else:
    print('  ')

练习2:成绩(grade)と操评(scrore)の成绩は4より大きく、操评は90より大きい--->一等奖学金绩点は3.5から4で、操评は90より大きい---->二等奨学金の成绩点は3から3.5で、そして操评は90---->三等奨学金のその他の情况は奨学金がありません
grade = 4
scrore = 90
if grade>=4 and scrore >= 90:
    print('     ')
elif 4 > grade >= 3.5 and scrore >= 90:
    print('     ')
elif 3 <= grade < 3.5 and scrore >= 90:
    print('     ')
else:
    print('     ')  

5.ifネスト
分割構造では、if、elifまたはelseの後ろに1つ以上の他のif文をネストして練習することができます.1つの数が偶数かどうかを判断し、印刷'が偶数であれば、この偶数が4で除去できるかどうかを判断し、印刷'が4の倍数であれば、印刷'が4の倍数でなければ、印刷'が4の倍数でなければ、奇数であれば、奇数の最後のビットを印刷/最後のビットが1であるかどうかを判断
num = random.randint(0,100)
print(num)

if num & 1 == 0:
    print('   ')

    #         ,     4  
    if num % 4 == 0:
        print(' 4   ')
    else:
        print('  4   ')
else:
    print('   ')
    last = num % 10   #       
    print(last)

    #                1
    if last == 1:
        print('     1')

02-forループ
pythonのループ構造には、forループとwhileループの2つがあります.ある操作/あるセグメントコードが繰り返し実行する必要がある場合、ループ構造を使用する必要があります.
1.for循環構造
構文:for変数inシーケンス:ループボディ
説明:for->キーワード、書き方固定変数->変数名、変数名の要件に従ってin->キーワードの名前を付け、書き方固定シーケンス->要件は値であり、文字列、リスト、辞書、集合、元祖、反復器、範囲(Range)ループ体->およびforがインデントされたコードセグメントを保持するなど、値はシーケンス(コンテナ)でなければなりません.循環体験が繰り返される.循環体には任意のコードを書くことができます
実行プロセス:変数をシーケンスから値を取り、1つずつ取り、取り終わるまで取ります.値をとるたびに、ループを実行します!
for x in 'abc':
    print(x)

print(x)

練習:文字列'a 78 and 71-2 cd'の数値文字の個数宣言変数を取得し、数値文字の個数を保存します.
count = 0
for char in 'a78and71-2cd':
    #          
    if char.isdigit():
        # print(char)
        count += 1     # count = count + 1

print(count)  

2.range関数
a.range(n):0~n-1範囲対応整数シーケンスfor num in range(10):print(num)を生成する
b.range(m,n):m~n-1の範囲に対応する整数シーケンスfor num in range(10,21):print(num)c.range(m,n,step):m~n-1の間隔stepの範囲に対応する整数シーケンスfor num in range(1,10,2):print(num)を生成する
注意:python 2.x --> xrange python3.x--->range練習:計算1+2+3+...+100
#          
sum1 = 0
for x in range(1,101):
    sum1 += x

print(sum1)

3.注意:ループ構造で変数が取得した値は、必ずしもループで使用する必要はありません.
この変数の値がループで不要な場合は、変数名を_と命名できます.練習:5行*****を印刷する
for _ in range(5):
    print('*****')

03-whileサイクル
1.whileループ構造pythonにdo-whileがない
構文:while条件文whileじょうけんぶん:ループ
説明:while->キーワード条件文->ifの後の条件文の要件と同様に、任意の値付き式(付与文ではない):->固定書き方ループ->繰り返し実行されるコードセグメントであってもよい.ループはwhileとインデント実行プロセスを維持します.条件文の結果がTrueであるかどうかを判断し、Trueのループを実行します.循環体を実行して、条件文がTrueであるかどうかを判断して、Trueでまた循環体を実行します...順番に類推して、判断条件文の結果がFalseであることを知って、ループは終わります
注意:while True:---->デッドサイクル
1+2+3+...+をwhileサイクルで実現100
num = 1
sum1 = 0
while num <= 100:
    # print(num)
    sum1 += num
    num += 1

print(sum1)

1  2  3 .... 100

   : n! = 1*2*3*...*n
n = 10
num = 1
sum1 = 1
while num <= n:
    sum1 *= num
    num += 1
print(sum1)  

練習:whileループで文字'hello python'の各文字を取得する
str1 = 'hello python'
index = 0
while index < len(str1):
    print(str1[index])
    index += 1

04-forとwhile
1.シーケンス内の要素を継続的に取得する場合は、forループを直接使用します.サイクル数が決定する場合は、forサイクル3も用いることが望ましい.デッドサイクルとサイクル数が不確定な場合はwhile練習を使用することが望ましい:ランダムに1つの数字(0~100)を生成し、入力した数字と生成したランダム数が同じになるまで、絶えず数字を入力する.推測を間違えるとヒントが大きいか小さいか
import random

#        
number = random.randint(0, 100)

#            (          ),           
in_num = input('       :')
in_num = int(in_num)

while in_num != number:
    if in_num > number:
        print('   ,   ')
    else:
        print('   ,   ')

    in_num = input('       :')
    in_num = int(in_num)

print('   !   :', number)


-05 breakとcontinue
1.continue
循環体にしか書けません.continueに遭遇したら終了します.次の循環を次の循環に直接行う判断は、for->変数に次の値whileを取らせ->条件がTrueかどうかを判断します.
for x in range(10):
    print(x)
    continue
    print(x*2)
index = 1
while index < 10:
    index += 1
    continue
    print('====')

練習:1~100の奇数以外の和を計算する(continueを用いる)
sum1 = 0
for x in range(1,101):
    if x % 2 == 1:
        continue

    sum1 += x

2.break
循環体に書くしかありません.循環中にbreakに遭遇すれば、循環全体が直接終わります.ループ後の別の文の実行
for x in range(1,10):
    print(x)
    break
    print('=====')
print('#####')

3.else
for変数inシーケンス:ループ体else:コードブロック
while条件文while条件文:ループ体else:コードブロック
ループ自然死後、elseの後ろのコードを実行します.ループがbreak終了に遭遇するとelseの後ろのコードブロックは実行されません
for x in range(1,10):
    print(x)
    if x == 3:
        break
else:
    print('   ')