日07プロセス制御

ソウル3つの質問:

何ですか?なぜそこにすべきですか?どのように使用するには?

分岐構造

1.1分岐構造とは何ですか

つまり、真と偽の条件に基づいて異なるサブコードを実行します

1.2なぜ、分岐構造を持っています

我々のような条件によって異なること、行うために必要がある場合:今日の雨を、私は傘を取る、それが今日雨はありません、私は傘を取ることはありません

1.3分岐構造を使用する方法

1.3.1文法であれば

if 条件1:   # 如果条件1的结果为True,就依次执行:代码1、代码2,......
   代码1
    代码2
    ......
elif 条件2: # 如果条件2的结果为True,就依次执行:代码3、代码4,......
   代码3
    代码4
    ......
else:     # 其它情况,就依次执行:代码7、代码8,......
    代码7
    代码8
    ......
# 注意:
# 1、python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下依次运行
# 2、条件可以是任意表达式,但执行结果必须为布尔类型
# 2.1在if判断中所有的数据类型也都会自动转换成布尔类型
# 2.2、None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False
# 2.3、其余均为True 

次に、我々は前提条件としての条件を必要とする場合のシナリオが別のネストを表現するならば、我々はより多く必要とする、高度な使用法を実証する場合にネストを使用します

#我们需要对90分以上的男生和女生做不同奖励,对80分以下的男生女生做不同惩罚
result = int(input("请输入你的成绩"))
sex = input("请输入你的性别")
if result>90:
    if sex == "boy":
        print("棒棒糖")
    else:
        print("冰激凌")
else:
    if sex == "boy":
        print("eat shit")
    else:
        print("get scolding")

拡張コンテンツ:コピー深さ

私たちは、別のリストの動作に影響を与えることなく変更するコンテンツの同じリストのうちの2つを必要とするとき

シャローコピー:元のリストは、新しいリストに直接コピー区別せずに第一層のメモリ・アドレスです。

この場合、我々は元のリストに不変の種類を変更し、新しいリストは変更されません

変数の型の元のリストを変更し、新たなリストはそれに応じて変化します

a = [
    'aa','bb',[1111]
]
b=a.copy()
print(id(a))
print(id(b))
>>>1729418126024
>>>1729419377288
a[2][0]=123
print(a)
print(b)
>>>['aa', 'bb', [123]]
>>>['aa', 'bb', [123]]

ディープコピー:コピーモードやなどの不変型の浅いコピー

変数の型は、メモリ内の新しいメモリ空間を開きます

a = [
    'aa','bb',[111]
]
import copy
b = copy.deepcopy(a)
print(id(a))
print(id(b))
>>>2172376474312
>>>2172379870920
a[2][0]=222
print(a)
print(b)
>>>['aa', 'bb', [222]]
>>>['aa', 'bb', [111]]

結論、読み取り専用場合の操作、使用の浅いコピー、あなたは深いコピーで、書きたい場合

2サイクルの構造

2.1whileサイクル

基本操作:出力1-4

i= 1
while i<5:#i<5是while执行子代码的条件,在执行完一次循环后回到开头重新进行判断
    print(i)
    i+=1

高度な操作:ユーザーのログイン操作を決定

username = "hz"
password = "123"
tag = True
while tag:
    name = input("请输入你的用户名:")
    word = input("请输入你的密码:")
    if name==username and word == password:
        print("登录成功")
        tag = False
    else:
        print("账号或密码错误")
    print("————end————")

サイクルを終了するには、2つの方法

#第一种,直接把循环条件改为假,在执行完本层循环后结束循环
while tag=True
    tag=False
    print("1")
#第二种,break,在break后面的代码不执行,直接跳出循环
while True
    break
    print("1")

現在のサイクルをスキップ

i = 0
while i<5:
    i += 1
    if i == 2:
        continue #跳出本次循环,执行下一次循环
    print(i)

他と組み合わせて使用​​しながら、

i = 0
while i<5:
    i += 1
    if i == 2:
        continue
    print(i)
else:
    print("hz is dsg")
#执行else代码的条件:while循环结束后且没有被break打断的情况

おすすめ

転載: www.cnblogs.com/hz2lxt/p/12449529.html