ループとwhileを終了
6561 ワード
1.ループ終了 break、 サイクル全体から飛び出します
上記のプログラムの場合、breakがあるため、後続の文は実行されません.結果: continue、現在の小さなループから飛び出して上のコードを何行か追加します:
結果: pass占位、何もしない
これで3も5も印刷されず、結果を見ることができます. sys.exit()プログラムを終了し、sysモジュール を先に挿入する
結果:デジタルゲーム システムは1つの20以内のランダムな整数を生成して、プレーヤーは6回推測する機会があって、毎回推測してすべてフィードバックがあります(推測は大きくて、推測は小さくて、推測は-終了しました)6回の中で、推測は正しくて、プレーヤーは勝った.さもなくばシステムは勝った.
結果:
2.プロセス制御--while while forと比較 forサイクルは回数のあるサイクルに用いられる. whileサイクルは条件付き制御に用いられる.
whleループは、式が偽になるまでwhileループを終了します.式は論理式であり、TrueまたはFalseを返さなければなりません. 構文:while expression:statement(s) whileはデッドサイクルと書きやすく、負荷が大きすぎます.例えば、次のスクリプト:
実行すると、コンピュータはhelloを出力し続けます.修正バージョン1:
出力結果:修正バージョン2:キーボード入力待ち
実行結果修正バージョン3:while条件はfalse、終了ループ
結果: whileのelse、クラスは他のサイクル より
結果:
3.練習
練習問題は、正の整数を質量係数に分解する.例えば、90を入力し、90=233*5を印刷します.プログラム分析:nを分解する質量因数は、まず最小の質量数iを見つけてから、以下の手順で完成する:(1)分解後商が1であれば、質量因数を分解する過程が終わったことを説明し、印刷すればよい.(2)商が1でない場合はiの値を印刷し、nをiで割った商を用いて新しい正の整数として分解し、第1のステップを繰り返す.(3)nがiで割り切れない場合,iの値に1を加え,第1のステップを繰り返す. サルが桃を食べる問題:サルは初日にいくつかの桃を摘んで、すぐに半分食べて、まだ中毒していないで、また1つ多く食べて、翌朝また残りの桃を半分食べて、また1つ多く食べました.それから毎朝、前日の残りの半分を食べました.10日目の朝に食べたくなったとき、桃が1つしか残っていませんでした.初日にどれだけ摘んだかを求めます.プログラム分析:逆思考の方法を採用し、後から推測する. 解答: 解答
#!/usr/bin/python
# -*- coding:utf8 -*-
# author: chawn
# date:
for i in xrange(10):
if i == 5:
break
print i
else :
print "end"
上記のプログラムの場合、breakがあるため、後続の文は実行されません.結果:
C:\Users\chawn\PycharmProjects\pyex\venv\Scripts\python.exe C:/Users/chawn/PycharmProjects/pyex/171226/ts.py
0
1
2
3
4
Process finished with exit code 0
#!/usr/bin/python
# -*- coding:utf8 -*-
# author: chawn
# date:
for i in xrange(10):
if i == 3:
continue
if i == 5:
break
print i
else :
print "end"
結果:
C:\Users\chawn\PycharmProjects\pyex\venv\Scripts\python.exe C:/Users/chawn/PycharmProjects/pyex/171226/ts.py
0
1
2
4
Process finished with exit code 0
#!/usr/bin/python
# -*- coding:utf8 -*-
# author: chawn
# date:
for i in xrange(10):
if i == 3:
continue
if i == 5:
continue
if i == 6:
pass
print i,
else :
print "end",
print "haha"
これで3も5も印刷されず、結果を見ることができます.
C:\Users\chawn\PycharmProjects\pyex\venv\Scripts\python.exe C:/Users/chawn/PycharmProjects/pyex/171226/ts.py
0 1 2 4 6 7 8 9 end haha
Process finished with exit code 0
#!/usr/bin/python
# -*- coding:utf8 -*-
# author: chawn
# date:
import sys
for i in xrange(10):
if i == 3:
continue
if i == 5:
continue
if i == 6:
sys.exit()
print i,
else :
print "end",
print "haha"
結果:
C:\Users\chawn\PycharmProjects\pyex\venv\Scripts\python.exe C:/Users/chawn/PycharmProjects/pyex/171226/ts.py
0 1 2 4
Process finished with exit code 0
#!/usr/bin/python
# -*- coding:utf8 -*-
# author: chawn
# date:
import random
import sys
random_num = random.randint(1, 20)
for i in xrange(1, 7):
enter_num = int(raw_input('Please input a num between 1 and 20: '))
if random_num < enter_num:
print 'the enter_num is bigger.'
elif random_num > enter_num:
print 'the enter_num is lower.'
elif random_num == enter_num:
print 'you are win'
sys.exit()
print 'game over'
結果:
C:\Users\chawn\PycharmProjects\pyex\venv\Scripts\python.exe C:/Users/chawn/PycharmProjects/pyex/171228/ .py
The random have been created
Please input a num between 1 and 20: 5
the enter_num is lower.
Please input a num between 1 and 20: 6
the enter_num is lower.
Please input a num between 1 and 20: 7
the enter_num is lower.
Please input a num between 1 and 20: 8
the enter_num is lower.
Please input a num between 1 and 20: 9
the enter_num is lower.
Please input a num between 1 and 20: 10
the enter_num is lower.
game over
Process finished with exit code 0
2.プロセス制御--while
#!/usr/bin/python
while 1:
print "hello"
実行すると、コンピュータはhelloを出力し続けます.
#!/usr/bin/python
# -*- coding:utf8 -*-
# author: chawn
# date:
n = 0
while 1:
if n == 5:
break
print n,"hello"
n += 1
出力結果:
C:\Users\chawn\PycharmProjects\pyex\venv\Scripts\python.exe C:/Users/chawn/PycharmProjects/pyex/171226/ts.py
0 hello
1 hello
2 hello
3 hello
4 hello
Process finished with exit code 0
#!/usr/bin/python
# -*- coding:utf8 -*-
# author: chawn
# date:
while 1:
print "hello"
if raw_input("please input sth,q for quit: ") == "q":
break
実行結果
C:\Users\chawn\PycharmProjects\pyex\venv\Scripts\python.exe C:/Users/chawn/PycharmProjects/pyex/171226/ts.py
hello
please input sth,q for quit: a
hello
please input sth,q for quit: q
Process finished with exit code 0
#!/usr/bin/python
# -*- coding:utf8 -*-
# author: chawn
# date:
n = "" #n
while n != "q" :
print "hello"
n = raw_input("please input sth,q for quit: ")
結果:
C:\Users\chawn\PycharmProjects\pyex\venv\Scripts\python.exe C:/Users/chawn/PycharmProjects/pyex/171226/ts.py
hello
please input sth,q for quit: fgg
hello
please input sth,q for quit: q
Process finished with exit code 0
#!/usr/bin/python
# -*- coding:utf8 -*-
# author: chawn
# date:
n = ""
while n != "q" : # n ,
print "hello"
n = raw_input("please input sth,q for quit: ")
if n == "q": # q, while , else
continue
else:
print "world"
結果:
C:\Users\chawn\PycharmProjects\pyex\venv\Scripts\python.exe C:/Users/chawn/PycharmProjects/pyex/171226/ts.py
hello
please input sth,q for quit: w
hello
please input sth,q for quit: q
world
Process finished with exit code 0
3.練習
練習問題
def fun(n):
for i in range(2, n / 2 + 1):
if n % i == 0:
print(i),
print("*"),
return fun(n / i)
print(n),
if __name__ == "__main__":
i = int(input(" : "))
fun(i)
num = 1
for i in range(9, 0, -1):
num = (num + 1) * 2
print(' %s ' %num)