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