Python基礎——分支、迴圈

来源:https://www.cnblogs.com/qingdeng123/archive/2019/09/21/11564558.html
-Advertisement-
Play Games

恢復內容開始 目錄 1. 分支結構 1.1 初步介紹 1.2 使用案例 1.3 練習 2.迴圈結構 1.1 初步介紹 1.2 使用案例 目錄 1. 分支結構 1.1 初步介紹 1.2 使用案例 1.3 練習 2.迴圈結構 1.1 初步介紹 1.2 使用案例 1. 分支結構 1.1 初步介紹 1.2 ...


---恢復內容開始---

目錄

1. 分支結構

1.1 初步介紹

至今,我們所寫的Python代碼都是順序執行,但是有時候在代碼中是需要進行邏輯判斷的,比如用戶 輸入用戶名和密碼,輸入正確則驗證通過,否則即驗證失敗。這個時候就會產生兩個分支,而且兩個分支只會有一條分支會走下去。當然,還有很多類似的場景,我們將這種結果稱為 "分支結構" 或 “選擇結構”。小編整理一套Python資料和PDF,有需要Python學習資料可以加學習群:631441315 ,反正閑著也是閑著呢,不如學點東西啦~~

語法格式:

    if xxx1:
        事情1
    elif xxx2:
        事情2
    elif xxx3:
        事情3
    else:
        事情4

  

1.2 使用案例

1、用戶身份驗證

# -*- coding:utf-8 -*-
"""
用戶身份驗證
version: 0.1
author: coke
"""
username = input("請輸入用戶名:")
password = input("請輸入密碼:")
if username == 'admin' and password == '123456':
    print("身份驗證成功")
else:
    print("身份驗證失敗")

輸出結果

 

2、分段函數求值

"""
分段函數求值
       3x - 5 (x > 1)
f(x) = x + 2 (-1 < x < 1)
       5x + 3 (x <= -1)
version: 0.1
Author: coke
"""
x = float(input("請輸入一個數字:"))
if x > 1:
    y = 3 * x - 5
elif x > -1 and x < 1:
    y = x + 2
else:
    y = 5 * x +3
print("f(%.2f)=%.2f"%(x,y))

輸出結果

 

1.3 練習

1、猜拳游戲

# -*- coding:utf-8 -*-
"""
猜拳游戲
version: 0.1
author: coke
"""
import random
num = int(input("剪刀(0) 石頭(1) 布(2):"))
computer = random.randint(0,2)
print("電腦出拳:%d"%computer)

if (num == 0 and computer == 2) or (num == 1 and computer == 0) or (num == 2 and computer == 1):
    print("哈哈,你贏了")
elif  num == computer:
    print("平局,要不要再來一局")
else:
    print("洗洗手,決戰都天亮")

 

2、成績等級轉換

"""
百分製成績轉等級製成績
90分以上    --> A
80分~89分    --> B
70分~79分    --> C
60分~69分    --> D
60分以下    --> E

Version: 0.1
Author: coke
"""

score = float(input('請輸入成績: '))
if score >= 90:
    grade = 'A'
elif score >= 80:
    grade = 'B'
elif score >= 70:
    grade = 'C'
elif score >= 60:
    grade = 'D'
else:
    grade = 'E'
print('對應的等級是:', grade)

 

2.迴圈結構

1.1 初步介紹

如果在程式中我們將執行一系列的重覆指令,比如我想計算1 - 100的和 或者 我想輸出99次 helloWorld,難道要一個個去寫麽,如果真是這樣,那麼編程的工作就太不合理了,所以,我們還需要瞭解一下迴圈結構,如果我們學會了迴圈結構,就可以重覆的執行某些操作指令。

在Python中構造迴圈結構有兩種做法,一種是for-in迴圈,一種是while迴圈。

for - in 迴圈

如果我們可以知道迴圈的次數或者是對容器的迭代(容器後面會涉及),我們會推薦for-in迴圈

for 臨時變數 in 列表或者字元串等:
        迴圈滿足條件時執行的代碼

 

while 迴圈

如果要構造不知道具體迴圈次數的迴圈結構,我們推薦使用while迴圈。while迴圈通過一個能夠產生或轉換出bool值的表達式來控制迴圈,表達式的值為True迴圈繼續,表達式的值為False迴圈結束。

while 條件:
        條件滿足時,做的事情1
        條件滿足時,做的事情2
        條件滿足時,做的事情3
        ...(省略)...

 

break:結束當前迴圈

continue:用來結束本次迴圈,緊接著執行下一次的迴圈

註: break/continue只能用在迴圈中,除此以外不能單獨使用

 

1.2 使用案例

1、用for迴圈 計算1-100 之間偶數的和

"""
用 for迴圈實現1-100之間的求和
version: 1.0
Author: coke
"""
#-*- coding=utf-8 -*-
sum = 0
for x in range(1,101):
    if x % 2 == 0:
        sum += x
print(sum)

輸出結果

需要說明的是上面代碼中的range類型,range可以用來產生一個不變的數值序列,而且這個序列通常都是用在迴圈中的,例如:

  • range(101)可以產生一個0到100的整數序列。
  • range(1, 100)可以產生一個1到99的整數序列。
  • range(1, 100, 2)可以產生一個1到99的奇數序列,其中的2是步長,即數值序列的增量

 

2、不用判斷 計算 1-100 之間偶數的和

"""
用 for迴圈實現1-100之間的求和
version: 1.0
Author: coke
"""
#-*- coding=utf-8 -*-
sum = 0
for x in range(2,101,2):
    sum += x
print(sum)

 

3、猜數字游戲

"""
猜數字游戲
電腦出一個 1~100之間的隨機數由人猜
電腦分別根據人猜的數字分別給出提示大一點/小一點/猜對了
version: 0.1
admin: coke
"""
import random
answer = random.randint(1,100)
counter = 0
while True:
    counter += 1
    result = int(input("請輸入一個數字:"))
    if answer > result:
        print("大一點")
    elif answer < result:
        print("小一點")
    else:
        print("猜對了")
        break
if counter > 7:
    print("智商餘額不足")

 

4、continue和break 的使用

"""
continue的使用
version: 0.1
author: coke
"""
name = "cokehaha"
for x in name:
    print("----")
    if x == "k":
        continue
    if x == "a":
        break
    print(x)

 

1.3 練習

1、輸入兩個正整數,計算最大公約數和最小公倍數

"""
輸入兩個正整數計算最大公約數和最小公倍數
version: 0.1
author: coke
"""

x = int(input('x = '))
y = int(input('y = '))
if x > y:
    x, y = y, x
for factor in range(x, 0, -1):
    if x % factor == 0 and y % factor == 0:
        print('%d和%d的最大公約數是%d' % (x, y, factor))
        print('%d和%d的最小公倍數是%d' % (x, y, x * y // factor))
        break

 

2、列印三角形圖案

"""
列印各種三角形圖案

*
**
***
****
*****

    *
   **
  ***
 ****
*****

    *
   ***
  *****
 *******
*********

version: 0.1
author: coke
"""

row = int(input('請輸入行數: '))
for i in range(row):
    for _ in range(i + 1):
        print('*', end='')
    print()


for i in range(row):
    for j in range(row):
        if j < row - i - 1:
            print(' ', end='')
        else:
            print('*', end='')
    print()

for i in range(row):
    for _ in range(row - i - 1):
        print(' ', end='')
    for _ in range(2 * i + 1):
        print('*', end='')
    print()

---恢復內容結束---


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 新聞 "宣告.NET Core 3.0第一個候選版本" ".NET Core 3.0第一個候選版本中ASP.NET Core與Blazor的更新" "F 的就業市場情形如何" "Finalization實現細節" "GitHub Pages編譯現在使用Checks API" "使用Visual St ...
  • 前言 越來越多的項目已經使用 "Java 8" 了,毫無疑問, "Java 8" 是Java自Java 5(發佈於2004年)之後的最重要的版本。這個版本包含語言、編譯器、庫、工具和 JVM 等方面的十多個新特性。在本文中我們將學習這些新特性,並用實際的例子說明在什麼場景下適合使用。 引用: 本文參 ...
  • 目的:寫給自己看的,不如其他大神全,以後慢慢修修改改 一:如何判斷數據是否垃圾數據 1.引用計數法 當創建一個對象時,為此對象分配一個引用計數器。當有其他對象引用這個對象時,計數器就+1。當引用失效了,計數器-1。 當一個對象的引用計數器=0時,此對象就可以被回收。 優點:原理簡單,實現方便。 缺點 ...
  • AJAX框架Day1 1、Ajax引言 a) 概念 Asynchronous Javascript And XML (非同步請求 javaScript And XML) b) 傳統的請求 2、非同步請求的開發 a) 非同步請求對象的創建 javascript: XmlHttpRequest對象 xhr C ...
  • 本周的 上分享了一篇小文章,它裡面提到的冷知識很有意思,我稍作補充,分享給大家。 它提到的部分問題,讀者們可以先思考下: 若兩個元組相等,即 a==b 且 a is b,那麼相同索引的元素(如 a[0] 、b[0])是否必然相等呢? 若兩個對象的 hash 結果相等,即 hash(a) == has ...
  • JDK(Java Development Kit) JDK顧名思義就是Java開發工具包,是Sun Microsystems針對Java開發員的產品,是Java程式員通過Java語言編寫程式所需的開發工具包,JDK包含了JRE,同時還包含了編譯Java源碼的編輯器Javac,還包含了很多Java程式 ...
  • 什麼是 PHP 擴展 通俗說,PHP 擴展是增強 PHP 語言功能的插件。PHP 提供了編程語言的語法,比如分支、迴圈、函數、類等,這些是 PHP 本身所提供的。在某些情況下需要在 PHP 語言的基礎上進行擴展,那麼就需要通過 PHP 底層提供的數據結構和介面來開發 PHP 擴展,從而來補充或擴展 ...
  • 聲明 :本博客僅僅是一個初學者的學習記錄、心得總結,其中肯定有許多錯誤,不具有參考價值,歡迎大佬指正,謝謝!想和我交流、一起學習、一起進步的朋友可以加我微信Liu__66666666 這是簡單學習一遍之後的記錄,後期還會修改。 一、學習內容 1. "jvm簡介" 2. 記憶體模型 3. 垃圾回收機制 ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...