python 循环语句结果存储_Python条件语句和循环语句
前言
通常都聽(tīng)到別人說(shuō),計(jì)算機(jī)很牛逼,很聰明,其實(shí)計(jì)算機(jī)一點(diǎn)都不聰明,光是你要跟他溝通,都會(huì)氣 shi 你,聰明的是在寫(xiě)程序的你。
寫(xiě)程序就是跟計(jì)算機(jī)溝通,告訴它要做什么。
竟然是這樣,那么肯定缺少不了一些溝通邏輯。比如你要告訴計(jì)算機(jī)在什么情況下做什么?或者在哪個(gè)時(shí)間點(diǎn)做什么?
這都需要用到邏輯判斷。這一章節(jié),主要就是說(shuō)這個(gè)。
目錄
一、條件語(yǔ)句
1、什么是條件語(yǔ)句
Python 條件語(yǔ)句跟其他語(yǔ)言基本一致的,都是通過(guò)一條或多條語(yǔ)句的執(zhí)行結(jié)果( True 或者 False )來(lái)決定執(zhí)行的代碼塊。
Python 程序語(yǔ)言指定任何非 0 和非空(null)值為 True,0 或者 null 為 False。
執(zhí)行的流程圖如下:
2、if 語(yǔ)句的基本形式
Python 中,if 語(yǔ)句的基本形式如下:
if 判斷條件: 執(zhí)行語(yǔ)句……else: 執(zhí)行語(yǔ)句……之前的章節(jié)也提到過(guò),Python 語(yǔ)言有著嚴(yán)格的縮進(jìn)要求,因此這里也需要注意縮進(jìn),也不要少寫(xiě)了冒號(hào) : 。
if 語(yǔ)句的判斷條件可以用>(大于)、=(大于等于)、<=(小于等于)來(lái)表示其關(guān)系。
例如:
# -*-coding:utf-8-*-results=59if results>=60: print ('及格')else : print ('不及格')輸出的結(jié)果為:
不及格上面也說(shuō)到,非零數(shù)值、非空字符串、非空 list 等,判斷為 True,否則為 False。因此也可以這樣寫(xiě):
num = 6if num : print('Hello Python')輸出的結(jié)果如下:
可見(jiàn),把結(jié)果打印出來(lái)了。
那如果我們把 num 改為空字符串呢?
很明顯,空字符串是為 False 的,不符合條件語(yǔ)句,因此不會(huì)執(zhí)行到 print('Hello Python') 這段代碼。
還有再啰嗦一點(diǎn),提醒一下,在條件判斷代碼中的冒號(hào) : 后、下一行內(nèi)容是一定要縮進(jìn)的。不縮進(jìn)是會(huì)報(bào)錯(cuò)的。
冒號(hào)和縮進(jìn)是一種語(yǔ)法。它會(huì)幫助 Python 區(qū)分代碼之間的層次,理解條件執(zhí)行的邏輯及先后順序。
3、if 語(yǔ)句多個(gè)判斷條件的形式
有些時(shí)候,我們的判斷語(yǔ)句不可能只有兩個(gè),有些時(shí)候需要多個(gè),比如上面的例子中大于 60 的為及格,那我們還要判斷大于 90 的為優(yōu)秀,在 80 到 90 之間的良好呢?
這時(shí)候需要用到 if 語(yǔ)句多個(gè)判斷條件,
用偽代碼來(lái)表示:
if 判斷條件1: 執(zhí)行語(yǔ)句1……elif 判斷條件2: 執(zhí)行語(yǔ)句2……elif 判斷條件3: 執(zhí)行語(yǔ)句3……else: 執(zhí)行語(yǔ)句4……實(shí)例:
# -*-coding:utf-8-*-results = 89if results > 90: print('優(yōu)秀')elif results > 80: print('良好')elif results > 60: print ('及格')else : print ('不及格')輸出的結(jié)果:
良好4、if 語(yǔ)句多個(gè)條件同時(shí)判斷
有時(shí)候我們會(huì)遇到多個(gè)條件的時(shí)候該怎么操作呢?
比如說(shuō)要求 java 和 python 的考試成績(jī)要大于 80 分的時(shí)候才算優(yōu)秀,這時(shí)候該怎么做?
這時(shí)候我們可以結(jié)合 or 和 and 來(lái)使用。
or (或)表示兩個(gè)條件有一個(gè)成立時(shí)判斷條件成功
and (與)表示只有兩個(gè)條件同時(shí)成立的情況下,判斷條件才成功。
例如:
# -*-coding:utf-8-*-java = 86python = 68if java > 80 and python > 80: print('優(yōu)秀')else : print('不優(yōu)秀')if ( java >= 80 and java < 90 ) or ( python >= 80 and python < 90): print('良好')輸出結(jié)果:
不優(yōu)秀良好注意:if 有多個(gè)條件時(shí)可使用括號(hào)來(lái)區(qū)分判斷的先后順序,括號(hào)中的判斷優(yōu)先執(zhí)行,此外 and 和 or 的優(yōu)先級(jí)低于 >(大于)、
5、if 嵌套
if 嵌套是指什么呢?
就跟字面意思差不多,指 if 語(yǔ)句中可以嵌套 if 語(yǔ)句。
比如上面說(shuō)到的例子,也可以用 if 嵌套來(lái)寫(xiě)。
當(dāng)然這只是為了說(shuō)明 if 條件語(yǔ)句是可以嵌套的。如果是這個(gè)需求,我個(gè)人還是不太建議這樣使用 if 嵌套的,因?yàn)檫@樣代碼量多了,而且嵌套太多,也不方便閱讀代碼。
二、循環(huán)語(yǔ)句
1、什么是循環(huán)語(yǔ)句
一般編程語(yǔ)言都有循環(huán)語(yǔ)句,為什么呢?
那就問(wèn)一下自己,我們弄程序是為了干什么?
那肯定是為了方便我們工作,優(yōu)化我們的工作效率啊。
而計(jì)算機(jī)和人類不同,計(jì)算機(jī)不怕苦也不怕累,也不需要休息,可以一直做。
你要知道,計(jì)算機(jī)最擅長(zhǎng)就是做重復(fù)的事情。
所以這時(shí)候需要用到循環(huán)語(yǔ)句,循環(huán)語(yǔ)句允許我們執(zhí)行一個(gè)語(yǔ)句或語(yǔ)句組多次。
循環(huán)語(yǔ)句的一般形式如下:
在 Python 提供了 for 循環(huán)和 while 循環(huán)。
這里又有一個(gè)問(wèn)題了,如果我想讓他運(yùn)行了一百次之后停止,那該怎么做呢?
這時(shí)候需要用到一些控制循環(huán)的語(yǔ)句:
循環(huán)控制語(yǔ)句描述break在語(yǔ)句塊執(zhí)行過(guò)程中終止循環(huán),并且跳出整個(gè)循環(huán)continue在語(yǔ)句塊執(zhí)行過(guò)程中終止當(dāng)前循環(huán),跳出該次循環(huán),執(zhí)行下一次循環(huán)passpass 是空語(yǔ)句,是為了保持程序結(jié)構(gòu)的完整性
這些控制語(yǔ)句是為了讓我們告訴程序什么時(shí)候停止,什么時(shí)候不運(yùn)行這次循環(huán)。
2、 for 循環(huán)語(yǔ)句
我們先來(lái)看下 for 循環(huán)語(yǔ)句。
它的流程圖基本如下:
基本的語(yǔ)法格式:
for iterating_var in sequence: statements(s)那么我們根據(jù)他的基本語(yǔ)法格式,隨便寫(xiě)個(gè)例子測(cè)試一下:
for letter in 'Hello 兩點(diǎn)水': print(letter)輸出的結(jié)果如下:
Hello兩點(diǎn)水從打印結(jié)果來(lái)看,它就是把字符串 Hello 兩點(diǎn)水 一個(gè)一個(gè)字符的打印出來(lái)。
那如果我們把字符串換為字典 dict 呢?
你會(huì)發(fā)現(xiàn)只打印了字典 dict 中的每一個(gè) key 值。
很多時(shí)候,我都是建議大家學(xué)到一個(gè)新的知識(shí)點(diǎn),都多去嘗試。
你嘗試一遍,自己觀察出來(lái)的結(jié)論,好過(guò)別人說(shuō)十遍。
如果你不知道怎么去試?
可以根據(jù)我們的例子舉一反三,比如上面的 for 循環(huán),試了字符串,字典,那我們之前學(xué)的基本數(shù)據(jù)類型還有什么呢?
不記得可以再返回去看看,可以把所有的基本類型都拿去嘗試一下。
比如,你試了之后,會(huì)發(fā)現(xiàn)整數(shù)和浮點(diǎn)數(shù)是不可以直接放在 for 循環(huán)里面的。
3、 range() 函數(shù)
for 循環(huán)還常常和 range() 函數(shù)搭配使用的。
如果不知道 range() 函數(shù) , 我們直接通過(guò)一段程序來(lái)理解。
for i in range(3): print(i)打印的結(jié)果為:
012可見(jiàn),打印了 0 到 3 。
使用 range(x) 函數(shù),就可以生成一個(gè)從 0 到 x-1 的整數(shù)序列。
如果是 range(a,b) 函數(shù),你可以生成了一個(gè)左閉右開(kāi)的整數(shù)序列。
其實(shí)例子中的 range(3) 可以寫(xiě)成 range(0,3), 結(jié)果是一樣的。
其實(shí)使用 range() 函數(shù),我們更多是為了把一段代碼重復(fù)運(yùn)行 n 次。
這里提個(gè)問(wèn)題,你仔細(xì)觀察 range() 函數(shù),上面說(shuō)到的不管是 1 個(gè)參數(shù)的,還是 2 個(gè)參數(shù)的都有什么共同的特點(diǎn)?
不知道你們有沒(méi)有發(fā)現(xiàn),他都是每次遞增 1 的。
range(3) 就是 0 ,1,2 ,每次遞增 1 。
range(3,6) 就是 3 ,4 ,5 ,也是每次遞增 1 的。
那能不能每次不遞增 1 呢?
比如我想遞增 2 呢?
在程序的編寫(xiě)中,肯定會(huì)遇到這樣的需求的。而 python 發(fā)展至今,range 函數(shù)肯定也會(huì)有這種功能。
所以 range 函數(shù)還有一個(gè)三個(gè)參數(shù)的。
比如 range(0,10,2) , 它的意思是:從 0 數(shù)到 10(不取 10 ),每次間隔為 2 。
4、While 循環(huán)語(yǔ)句
While 循環(huán)和 for 循環(huán)的作用是一樣的。
我們先來(lái)看看 While 循環(huán)語(yǔ)句的樣子。
程序輸出的結(jié)果是:
5050這個(gè)例子是計(jì)算 1 到 100 所有整數(shù)的和。
5、for 循環(huán)和 whlie 循環(huán)的區(qū)別
之前也提到過(guò)了,如果一種語(yǔ)法能表示一個(gè)功能,那沒(méi)必要弄兩種語(yǔ)法來(lái)表示。
竟然都是循環(huán),for 循環(huán)和 while 循環(huán)肯定有他們的區(qū)別的。
那什么時(shí)候才使用 for 循環(huán)和 while 循環(huán)呢?
- for 循環(huán)主要用在迭代可迭代對(duì)象的情況。
- while 循環(huán)主要用在需要滿足一定條件為真,反復(fù)執(zhí)行的情況。 (死循環(huán)+break 退出等情況。)
- 部分情況下,for 循環(huán)和 while 循環(huán)可以互換使用。
例如:
for i in range(0, 10): print(i)i = 0while i < 10: print(i) i = i + 1雖然打印的結(jié)果是一樣的,但是細(xì)細(xì)品味你會(huì)發(fā)現(xiàn),他們執(zhí)行的順序和知道的條件是不同的。
6、嵌套循環(huán)
循環(huán)語(yǔ)句和條件語(yǔ)句一樣,都是可以嵌套的。
具體的語(yǔ)法如下:
for 循環(huán)嵌套語(yǔ)法
for iterating_var in sequence: for iterating_var in sequence: statements(s) statements(s)while 循環(huán)嵌套語(yǔ)法
while expression: while expression: statement(s) statement(s)除此之外,你也可以在循環(huán)體內(nèi)嵌入其他的循環(huán)體,如在 while 循環(huán)中可以嵌入 for 循環(huán), 反之,你可以在 for 循環(huán)中嵌入 while 循環(huán)
比如:
當(dāng)我們需要判斷 sum 大于 1000 的時(shí)候,不在相加時(shí),可以用到 break ,退出整個(gè)循環(huán)。
count = 1sum = 0while (count <= 100): sum = sum + count if ( sum > 1000): #當(dāng) sum 大于 1000 的時(shí)候退出循環(huán) break count = count + 1print(sum)輸出的結(jié)果:
1035有時(shí)候,我們只想統(tǒng)計(jì) 1 到 100 之間的奇數(shù)和,那么也就是說(shuō)當(dāng) count 是偶數(shù),也就是雙數(shù)的時(shí)候,我們需要跳出當(dāng)次的循環(huán),不想加,這時(shí)候可以用到 break
count = 1sum = 0while (count <= 100): if ( count % 2 == 0): # 雙數(shù)時(shí)跳過(guò)輸出 count = count + 1 continue sum = sum + count count = count + 1print(sum)輸出的語(yǔ)句:
2500還有:
for num in range(10,20): # 迭代 10 到 20 之間的數(shù)字 for i in range(2,num): # 根據(jù)因子迭代 if num%i == 0: # 確定第一個(gè)因子 j=num/i # 計(jì)算第二個(gè)因子 print ('%d 是一個(gè)合數(shù)' % num) break # 跳出當(dāng)前循環(huán) else: # 循環(huán)的 else 部分 print ('%d 是一個(gè)質(zhì)數(shù)' % num)輸出的結(jié)果:
10 是一個(gè)合數(shù)11 是一個(gè)質(zhì)數(shù)12 是一個(gè)合數(shù)13 是一個(gè)質(zhì)數(shù)14 是一個(gè)合數(shù)15 是一個(gè)合數(shù)16 是一個(gè)合數(shù)17 是一個(gè)質(zhì)數(shù)18 是一個(gè)合數(shù)19 是一個(gè)質(zhì)數(shù)當(dāng)然,這里還用到了 for … else 語(yǔ)句。
其實(shí) for 循環(huán)中的語(yǔ)句和普通的沒(méi)有區(qū)別,else 中的語(yǔ)句會(huì)在循環(huán)正常執(zhí)行完(即 for 不是通過(guò) break 跳出而中斷的)的情況下執(zhí)行。
當(dāng)然有 for … else ,也會(huì)有 while … else 。他們的意思都是一樣的。
三、條件語(yǔ)句和循環(huán)語(yǔ)句綜合實(shí)例
1、打印九九乘法表
# -*- coding: UTF-8 -*-# 打印九九乘法表for i in range(1, 10): for j in range(1, i+1): # 打印語(yǔ)句中,大括號(hào)及其里面的字符 (稱作格式化字段) 將會(huì)被 .format() 中的參數(shù)替換,注意有個(gè)點(diǎn)的 print('{}x{}={}'.format(i, j, i*j), end='') print()輸出的結(jié)果:
1x1=1 2x1=2 2x2=4 3x1=3 3x2=6 3x3=9 4x1=4 4x2=8 4x3=12 4x4=16 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=812、判斷是否是閏年
# 判斷是否是閏年year = int(input("請(qǐng)輸入一個(gè)年份: "))if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0: print('{0} 是閏年' .format(year))else: print('{0} 不是閏年' .format(year))總結(jié)
以上是生活随笔為你收集整理的python 循环语句结果存储_Python条件语句和循环语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: pycharm导入jieba包_3分钟带
- 下一篇: python程序写蛇_python蟒蛇绘