1. 程式人生 > >神奇的循環知識

神奇的循環知識

字符串轉換 方式 -- csb 我們 一位 作用 其中 下一個

  • 流程控制之if判斷

  • 流程控制之while循環

  • 流程控制之for循環

if語法:

if條件:(if條件形成後,/n後會縮進四個空格)

代碼1

代碼2

 代碼3

----------------------------------------------------------------------------

語法一:

cls=‘human‘
sex=‘famele‘
ale=22
if cls==‘human‘ and sex==‘famele‘ and ale>18 and ale<30 : (如果條件成立)
print(‘表白‘) (條件成立運行該行代碼)
print(‘end.....‘) (無論條件是否成立,最後都會運行該行代碼)

----------------------------------------------------------------------------------

語法二:

cls=‘human‘
sex=‘famele‘
ale=22
if cls==‘human‘ and sex==‘famele‘ and ale>23 and ale<50: (如果條件成立)
print(‘表白‘) (條件成立運行該行代碼)

else: (前面條件不成立的話)
print(‘阿姨好‘) (前面條件不成立的話,運行該行代碼)
print(‘end.....‘) (最後執行該行代碼)

--------------------------------------------------------------------------------------

如果:成績>=90,那麽:優秀

如果成績>=80且<90,那麽:良好

如果成績>=70且<80,那麽:普通

cj=input(‘請輸入分數:‘)
cj=int(cj) (如果不輸入該行,那麽系統會提示str不能和下面的int做大小對比,所以必須把填入的分數,字符串轉換成整形)
if cj >=90:
print(‘優秀‘)
elif cj >=80 and cj<90:
print(‘良好‘)
elif cj >=70 and cj<80:
print(‘普通‘)

——————————————————————————————————

name=‘huanghua‘
paw=‘123‘
name1=input(‘請輸入用戶名:‘)
paw1=input(‘請輸入密碼:‘)
if name==name1 and paw==paw1:
print(‘輸入正確‘)
else:
print(‘輸入錯誤‘)

其中我自犯過的錯:我首先寫成paw=123,結果在輸入界面輸入123後,顯示(‘輸入錯誤’);這是應為paw=123 顯示為int,int無法與str做

對比,所以兩種解決模式:1.paw=‘123‘ 這樣的話表示paw之後是str,str能和str之間做對比;2.在paw=input(‘請輸入密碼’)的下一行輸入

paw=int(paw1),目的是將用戶之後輸入的str自動轉換成int模式。

————————————————————————————————————————————————

cls=‘human‘
sex=‘famele‘
ale=22
bb=False
if cls==‘human‘ and sex==‘famele‘ and ale==22:
print(‘表白‘)
if bb:
print(‘在一起‘)
else:
print(‘我逗你玩的‘)
else:
print(‘阿姨好‘)
print(‘end.....‘)

這裏面采用了一個嵌套模式,就是在if後面再增加if判斷,新增一個bb=False,也是條件之一,表示在完成第一個if後,在嵌套下一個if條件,

條件不成立顯示(表白)(我逗你玩的);

如果bb=True,在第一個條件成立夠,第二個if bb:表示條件成立,顯示(表白)(在一起)

但是如果第一個if條件不成立的話,它將直接跳到else,顯示(阿姨好),之前的if bb條件將直接跳過,因為它是在第一個if 大框架之下,和else沒有關系。

—————————————————————————————————————————————————————————————

while

while的語法,while的循環又稱為條件循環。

name=‘huanghua‘
paw=‘123‘
while True:
name1=input(‘請輸入姓名:‘)
paw1=input(‘請輸入密碼:‘)
if name==name1 and paw==paw1:
print(‘輸入正確‘)
else:
print(‘輸入錯誤‘)

while True:循環的條件為True,表示循環的條件為對的情況下;但是運行後出現了死循環,就是我輸入賬號,密碼無論對錯都在循環,並沒有在輸入對的情況下結束循環。

—————————————————————————————————————————————————————————————

while+break:

break 的意思是終止掉當前層的循環,執行其他代碼。

name=‘huanghua‘
paw=‘123‘
while True:
name1=input(‘請輸入賬號:‘)
paw1=input(‘請輸入密碼:‘)
if name==name1 and paw==paw1:
print(‘輸入正確‘)
break
else:
print(‘輸入錯誤‘)

這次程序中添加了break,但是添加的很巧妙,它是在第一條條件成立後面加的break,表示如果第一條條件成立後將結束本次循環,後面都不循環.

—————————————————————————————————————————————————————————————

while+continue

continue的意思是終止掉本次循環,直接進入下一次循環。

記住:continue一定不要加到循環體最後一步執行的代碼。

n=1

while n<11:

print(n)

n+=1

1 2 3 4 5 6 7 8 9 10

n等於1

while循環條件是:n要循環小於11的數字

打印以上條件的n值

在每次n循環後都要+1,後再在顯示+1後的值(n=1,n+1=2顯示2,以上n=2的基礎上再+1=3,以此類推,直到小於11,等於10)

——————————————————————————————————————————————————————————

n=1

while n<11

if n==8 :

n+=1

continue

print(n)

n+=1

顯示1 2 3 4 5 6 7 9 10

邏輯是:和之前一樣n=1,while循環的條件是n要循環小於11的數,(如果n在循環到等於8的條件下,繼續按照沒循環後面加1,當循環到8的時候,結束本次8的循環,接著打印之後的數字,之後一直循環到小於11的數字之前都要在循環數值情況加加1)。

這裏面重點是:

if n==8:

n+=1

continue

裏面很多都會忘記增加n+=1,因為以為最後一步有了就不需要了。如果少這位代碼的話,出來的值就運行到7之後就停止運行了,原因是系統是從上到下運行,他在達到條件等於8後它就跳過本次循環了直接循環打印8之前的數值,最後的n+=1達不到效果。

————————————————————————————————————————————————————————————

while True:

if條件1:

code1

code2

   continue (如果這裏加continue是正確的,因為加在這裏表示程序運行到這裏後將結束code3 code4的程序,這裏加comtinue是正確的)

   code3

   code4

continue (如果將continue加在這裏是毫無意義的,應為程序運行到這裏本來已經結束了,這裏加是錯的)

————————————————————————————————————————————————————————-————

while 嵌套:

name=‘huanghua‘

paw=‘123‘

while True:

name1=input(‘請輸入賬號:‘)

paw1=input(‘請輸入密碼:‘)

if name==name1 and paw==paw1:

print(‘輸入正確‘)

while True:

cmd=input(‘輸入執行的功能:‘)

if cmd==‘q‘:

    break

print(‘%s功能執行中....:‘%cmd)

break

else:

print(‘輸入錯誤‘)

當中有兩個while循環,嵌套作用,主要是引申在賬號,密碼輸入正確後,之後的操作再次循環,當在輸入執行功能中要求輸入q後,要求退出所有循環,所有此代碼中有兩次break,break是代表時終止掉當前循環,第一個break是代表輸入q後,當前break是只對應if的條件等於q時,結束掉後面所有操作,返回輸入賬號,密碼的界面,再次while循環;第二次的break輸入在與第一次if對齊,表示到此行後,結束所有的while循環的if條件。

——————————————————————————————————————————————————————————————————————————————————————————

while+True:

name=‘huanghua‘

paw=‘123‘

tag=True:

while tag:

name1=input(‘請輸入賬號:)

paw1=input(‘請輸入密碼‘)

if name==name1 and paw==paw1:

print(‘輸入正確")

while tag:

cmd=inpurt(‘請輸入命令:)

    if cmd==‘q‘

    tag=False

   else:

    print(‘%s功能執行中....‘%cmd)

else:

    print(‘輸入錯誤‘)

該代碼增加了tag=True,這是個變量的關系,相當於tag等於True這個值,之前代碼中while True:這個可更改為while tag,意思是一樣的,

其次之前在cmd==‘q’後面需要加bresk,但是在該代碼中都取消了break,後面增加tag=False後,將之前所以tag=True 的值全部更改為False,

在while循環中值為真,就能循環,只為假就停止循環,True為真能循環,False為假,都不能循環,所以之後如果cmd=‘q’後,增加tag值為False,它就跳到第二個while tag ,發現該值為False,假的不循環,再跳到第一個while tag後同上,就全部停止循環。

——————————————————————————————————————————————————————————

while+else:

n=1

whil n<5:

if n==3:

break

print(n)

n+=1

else:

print(‘=====")

顯示1 2.

因為當n==3時,加了個break後,後面的代碼就不執行了。

——————————————————————————————————————————————

n=1

while n<5:

print(n)

n+=1

else:

print(‘=======‘)

顯示1 2 3 4 ==========

————————————————————————————————————————————————

for 循環:

names=[‘egon‘,‘asb‘,‘wsb‘,‘lsb‘,‘csb‘]

n=0

while n<len(names):

print(names[n])

n+=1

顯示:egon asb wsb lsb csb

我們剖析下以上步驟:

取列表裏面的值,首先把列表裏面的值定義個n,因為n是要取值我們從最左邊開始計算,最左邊電腦取值都是0開始,所以我們用0計算,

然後我們用while 循環模式取值,給n一個定義,n要小於列表的長度,長度定義為len,len後面必須標註列表的變量名,接著我們開始打印names的列表值,names的列表值,我們用n來定義過,所以在打印names的值,需要在後面加個n,最後在標註n值在每次輸出時候都要

進一位。

————————————————————————————————————————————————————————————

info={‘name‘:‘egon‘,‘age‘:18,‘sex‘:‘male‘}

取字典info中key的值和key,valse值

for k in info:

print(k)

顯示name,age,sex

字典中name是key值,egon是valse值。

for k in info:

print(k,info[k])

顯示name engon; age 18; sex male

其中字典中取key值或valse值需要套用一個公式:

for key名 in 字典變量名:

print(key名)

取到的是key!

for key值 in 字典名:

print(key名,字典名[key名])

就能取到key值和valse值。

names=[‘egon‘,‘asb‘,‘wsb‘,‘lsb‘,‘csb‘]

取列表中的值:

for k in names:

print(k)

顯示engo,asb,wsb,lsb,csb

通過for循環定義同時也能取到列表值

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

for+range :

range : 範圍

for k in range (1,10): for 循環1開始到10結束,顧頭不顧尾

  print(k)

顯示1 2 3 4 5 6 7 8 9

————————————————————————————————————————

for k in range(10): (10)只寫10的話,那麽他起始默認值就是0,顧頭不顧尾

  print(k)

顯示0 1 2 3 4 5 6 7 8 9

——————————————————————————————————————————

for k in range (1,10,2): (1,10,2)循環1到10之間的值,顧頭不顧尾,最後的2代表每打印第一個數後跨過之後的數字取第三數字,以

  print(k) 此類推,如果不寫默認的值是1)

顯示1 3 5 7 9

————————————————————————————————————————————

name=[‘egno‘,‘axx‘,‘wxx‘,‘’lxx‘,‘hxx‘]

for k in range (5):

  print(k,name[k])

顯示0,engo 1,axx 2,wxx 3,lxx 4hx

for循環通過索引來找出0,1,2,3,4, 在按照key ,valse的方式取出valse值

for k in range (len(name)): 用(len(列表名)) 就能直接取出列表的長度

  print(k,name[k])

————————————————————————————————————————————

嵌套for循環使用:

for k in range(4):

  print(‘-----第一層%s-----‘%k)

  for i in range(3):

    print(‘ 第二層%s‘%i)

顯示-----第一層0-----

第二層0

第二層1

第二層2

------第一層1------

第二層0

第二層1

第二層2

------第二層2-----

第二層0

第二層1

第二層2

------第一層3------

第二層0

第二層1

第二層2

其中就是for循環嵌套使用,其中有兩次for循環,第一次為大循環,第二次為小循環,for循環嵌套使用,遵循以一次最外面的for循環執行一次,接著執行一次裏面的小循環,如果裏面的循環嵌套多次,就保證將裏面的小循環執行好多次後,在繞回來再一次執行外面的大循環,再執行裏面的小循環。以此類推。

——————————————————————————————————————————————————————————

for+break:

name=[‘engo‘,‘lxx‘,‘wxx‘,‘hww‘,‘yrr‘]

for k in name:

  if k==‘wxx‘

    break

  print(k)

顯示:engo lxx

但for 循環滿足的if的條件後,用break,代表終止本層循環,後面不再執行,就顯示前面的值。

依次類推,如果把break,更改為continue的話,但if條件滿足後,跳掉滿足條件的那一條,其他照樣執行。

————————————————————————————————————————————————————

for+else

a=[1,2,3,4,5]

for k in a:

  print(k)

else:

  print(‘end.....‘)

顯示1 2 3 4 5 end..........

說明for循環和else是可以嵌套使用的。

a=[1,2,3,4,5]

for k in a:

  if k==3:

    break

else:

  print(‘end.....‘)

顯示1 2

為什麽不顯示後面的數字和else對應的打印條件呢?應為在k值等於3時,就會被break,後面的所有都無法執行。

神奇的循環知識