第五章—if語句

来源:https://www.cnblogs.com/liuhaier/archive/2018/04/22/8909522.html
-Advertisement-
Play Games

5-1 條件測試 :編寫一系列條件測試;將每個測試以及你對其結果的預測和實際結果都列印出來。你編寫的代碼應類似於下麵這樣: car = 'subaru' print("Is car == 'subaru'? I predict True.") print(car == 'subaru') print ...


5-1 條件測試 :編寫一系列條件測試;將每個測試以及你對其結果的預測和實際結果都列印出來。你編寫的代碼應類似於下麵這樣:

car = 'subaru'

 print("Is car == 'subaru'? I predict True.")

 print(car == 'subaru')    

print("\nIs car == 'audi'? I predict False.")

 print(car == 'audi')

#詳細研究實際結果,直到你明白了它為何為True 或False 。 

#創建至少10個測試,且其中結果分別為True 和False 的測試都至少有5個。 

1 car = 'subaru'
2 print("Is car == 'subarur'? I predict True.")
3 print(car == 'subaru')
4 
5 print("\nIs car == 'audi'? I predict False")
6 print(car == 'audi')

輸出:

1 Is car == 'subarur'? I predict True.
2 True
3 
4 Is car == 'audi'? I predict False
5 False

5-2 更多的條件測試:你並非只能創建10個測試。如果你想嘗試做更多的比較,可再編寫一些測試,並將它們加入到conditional_test.py中。對於下麵列出的各種測試,至少編寫一個結果為True和False的測試。

#檢查兩個字元串相等不相等。

#使用函數lower()的測試。

#檢查兩個數字相等、不等、大於、小於、大於等於和小於等於。

#使用關鍵字and和or的測試。

#測試特定的值是否包含在列表中。

#測定特定的值是否未包含在列表中。

 1 str1='aa'
 2 str2='bb'
 3 print(str1==str2)
 4 print(str1!=str2)
 5 name1='Ada'
 6 print(name1.lower()=='ada')
 7 num1=5
 8 num2=8
 9 print(num1==num2)
10 print(num1!=num2)
11 print(num1>num2)
12 print(num1<num2)
13 print(num1>=num2)
14 print(num1<=num2)
15 print(num1>=2 and num2>=2)
16 print(num1<=6 or num2<=6)
17 info=['a','b','c']
18 print('a' in info)
19 print('d' not in info)

輸出:

 1 False
 2 True
 3 True
 4 False
 5 True
 6 False
 7 True
 8 False
 9 True
10 True
11 True
12 True
13 True

 

5-3  外星人顏色#1 :假設在游戲中剛射殺了一個外星人,請創建一個名為alien_color 的變數,並將其設置為'green' 、'yellow' 或'red' 。

 #編寫一條if 語句,檢查外星人是否是綠色的;如果是,就列印一條消息,指出玩家獲得了5個點。

#編寫這個程式的兩個版本,在一個版本中上述測試通過了,而在另一個版本中未通過(未通過測試時沒有輸出)。

1 alien1="green"
2 if alien1=="green":
3     print("You get 5 point because you killed  an alien.")
4 alien2="red"
5 if alien2=="green":
6     print("You get 5 point because you killed  an alien.")

輸出:

You get 5 point because you killed  an alien.

5-4 外星人顏色#2 :像練習5-3那樣設置外星人的顏色,並編寫一個if-else 結構。

 #如果外星人是綠色的,就列印一條消息,指出玩家因射殺該外星人獲得了5個點。

 #如果外星人不是綠色的,就列印一條消息,指出玩家獲得了10個點。

 #編寫這個程式的兩個版本,在一個版本中執行if 代碼塊,而在另一個版本中執行else 代碼塊。

 1 alien1="green"
 2 if alien1=="green":
 3     print("You get 5 point because you killed  an alien.")
 4 else :
 5     print("You get 10 point.")
 6 alien2="red"
 7 if alien2=="green":
 8     print("You get 5 point because you killed  an alien.")
 9 else :
10     print("You get 10 point.")

輸出:

1 You get 5 point because you killed  an alien.
2 You get 10 point.

 

5-5  外星人顏色#3 :將練習5-4中的if-else 結構改為if-elif-else 結構。

 #如果外星人是綠色的,就列印一條消息,指出玩家獲得了5個點。

 #如果外星人是黃色的,就列印一條消息,指出玩家獲得了10個點。

 #如果外星人是紅色的,就列印一條消息,指出玩家獲得了15個點。

 #編寫這個程式的三個版本,它們分別在外星人為綠色、黃色和紅色時列印一條消息。

 

 1 alien='green'
 2 if alien =='green':
 3     print('You get 5 point.')
 4 elif alien =='yellow':
 5     print('You get 10 point.')
 6 else :
 7     print('You get 15 point.')
 8 
 9 alien2='yellow'
10 if alien2=='green':
11     print('You get 5 point.')
12 elif alien2=='yellow':
13     print('You get 10 point.')
14 else:
15     print('You get 15 point.')
16 
17 alien3='red'
18 if alien3=='green':
19     print('You get 5 point.')
20 elif alien3=='yellow':
21     print('You get 10 point.')
22 else :
23     print('You get 15 point.')

輸出:

You get 5 point.
You get 10 point.
You get 15 point.

5-6 人生的不同階段 :設置變數age 的值,再編寫一個if-elif-else 結構,根據age 的值判斷處於人生的哪個階段。

 # 如果一個人的年齡小於2歲,就列印一條消息,指出他是嬰兒。

 # 如果一個人的年齡為2(含)~4歲,就列印一條消息,指出他正蹣跚學步。

 #如果一個人的年齡為4(含)~13歲,就列印一條消息,指出他是兒童。

 #如果一個人的年齡為13(含)~20歲,就列印一條消息,指出他是青少年。

 # 如果一個人的年齡為20(含)~65歲,就列印一條消息,指出他是成年人。

 # 如果一個人的年齡超過65(含)歲,就列印一條消息,指出他是老年人。

 1 age=25
 2 if age<2:
 3     print("He is a baby. ")
 4 elif age>=2 and age <4:
 5     print("He is learning how to walk. ")
 6 elif age>=4 and age<13:
 7     print("He is a child. ")
 8 elif age>=13 and age <20:
 9     print("He is a young man. ")
10 elif age >=20 and age<65:
11     print("He is an adult. ")
12 else :
13     print("He is an old man. ")

輸出:

1 He is an adult.

5-7 喜歡的水果 :創建一個列表,其中包含你喜歡的水果,再編寫一系列獨立的if 語句,檢查列表中是否包含特定的水果。

 #將該列表命名為favorite_fruits ,併在其中包含三種水果。

 #編寫5條if 語句,每條都檢查某種水果是否包含在列表中,如果包含在列表中,就列印一條消息,如“You really like bananas!”。 

 1 favorite_fruits=['apple','banana','orange']
 2 if 'apple' in favorite_fruits:
 3     print('You really like apples!')
 4 if 'banana' in favorite_fruits:
 5     print('You really like bananas!')
 6 if 'orange' in favorite_fruits:
 7     print('You really like oranges!')
 8 if 'grape' in favorite_fruits:
 9     print("You really like grapes.")
10 if 'pear' in favorite_fruits:
11     print('You really like pears.')

輸出:

1 You really like apples!
2 You really like bananas!
3 You really like oranges!

5-8 以特殊方式跟管理員打招呼 :創建一個至少包含5個用戶名的列表,且其中一個用戶名為'admin' 。想象你要編寫代碼,在每位用戶登錄網站後都列印一條問 候消息。遍歷用戶名列表,並向每位用戶列印一條問候消息。

 #如果用戶名為'admin' ,就列印一條特殊的問候消息,如“Hello admin, would you like to see a status report?”。

 #否則,列印一條普通的問候消息,如“Hello Eric, thank you for logging in again”。

1 usernames=['admin','ada','ava','peter','Marry']
2 for username in usernames:
3     if username=='admin':
4         print("Hello admin,would you like to see a status report?")
5     else:
6         print('Hello '+username+',thank you for loging in again.')

輸出:

1 Hello admin,would you like to see a status report?
2 Hello ada,thank you for loging in again.
3 Hello ava,thank you for loging in again.
4 Hello peter,thank you for loging in again.
5 Hello Marry,thank you for loging in again.

5-9 處理沒有用戶的情形 :在為完成練習5-8編寫的程式中,添加一條if 語句,檢查用戶名列表是否為空。

 #如果為空,就列印消息“We need to find some users!”。

 #刪除列表中的所有用戶名,確定將列印正確的消息。

1 usernames=[]
2 if usernames:
3     for username in usernames:
4         if username=='admin':
5             print("Hello admin,would you like to see a status report?")
6         else:
7             print('Hello '+username+',thank you for loging in again.')
8 else:
9     print("We need some users.")

輸出:

We need some users.

5-10 檢查用戶名 :按下麵的說明編寫一個程式,模擬網站確保每位用戶的用戶名都獨一無二的方式。

 # 創建一個至少包含5個用戶名的列表,並將其命名為current_users 。

 #再創建一個包含5個用戶名的列表,將其命名為new_users ,並確保其中有一兩個用戶名也包含在列表current_users 中。

 #遍歷列表new_users ,對於其中的每個用戶名,都檢查它是否已被使用。如果是這樣,就列印一條消息,指出需要輸入別的用戶名;否則,列印一條消息,指 出這個用戶名未被使  用。 確保比較時不區分大消息;換句話說,如果用戶名'John' 已被使用,應拒絕用戶名'JOHN' 。

1 current_users=['a','b','c','d','e','h']
2 new_users=['A','b','f','g','p']
3 for new_user in new_users :
4     if new_user.lower() in current_users:
5         print("You should print other name.")
6     else :
7         print("This name can use.")

輸出:

1 You should print other name.
2 You should print other name.
3 This name can use.
4 This name can use.
5 This name can use.

5-11  序數 :序數表示位置,如1st和2nd。大多數序數都以th結尾,只有1、2和3例外。

 #在一個列表中存儲數字1~9。

 # 遍歷這個列表。 

 #在迴圈中使用一個if-elif-else 結構,以列印每個數字對應的序數。輸出內容應為1st 、2nd 、3rd 、4th 、5th 、6th 、7th 、8th 和9th ,但每個序 數都獨占一行。

1 for value in range(1,10):
2     if  value ==1:
3         print("1st")
4     elif value==2:
5         print("2nd")
6     elif value==3:
7         print("3rd")
8     else :
9         print(str(value)+"th")

輸出:

1st
2nd
3rd
4th
5th
6th
7th
8th
9th

 


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

-Advertisement-
Play Games
更多相關文章
  • 再次整理了一下這個日誌收集系統的框,如下圖 這次要實現的代碼的整體邏輯為: 完整代碼地址為: https://github.com/pythonsite/logagent etcd介紹 高可用的分散式key-value存儲,可以用於配置共用和服務發現 類似的項目:zookeeper和consul 開 ...
  • Java中的IO流 分類 根據流的方向:輸入流和輸出流 根據讀取文字的大小:位元組流和字元流(位元組按照位元組讀取,讀取中文容易亂碼,字元流按照字元讀取,通常用於讀取中文) 根據讀取的方式:節點流和緩存流 分類 根據流的方向:輸入流和輸出流 根據讀取文字的大小:位元組流和字元流(位元組按照位元組讀取,讀取中文容 ...
  • 一、基礎概念 抽象事物,是若沒有具體的信息可以描述這個事物,這個事物可以稱為抽象事物。 抽象類,是不斷的向上抽取而來。抽取方法聲明而不確定具體的方法內容。由不同的子類來完成具體的方法內容。 (一)抽象類的特點: 1、抽象方法沒有方法體,必須由抽象關鍵字abstract來修飾。 1、抽象方法一定是存在 ...
  • ### 消息中間件 ### **消息中間件** 1. 消息中間件的概述 2. 消息中間件的應用場景(查看大綱文檔,瞭解消息隊列的應用場景) * 非同步處理 * 應用解耦 * 流量削峰 * 消息通信 ### JMS消息服務 ### **JMS的概述** 1. JMS消息服務的概述 2. JMS消息模型 ...
  • 字元串(str):(不可變類型數據) 雙引號或者單引號中的數據。(不能換行) 三個引號中的數據可以換行。下標、切片、步長 下標就是索引 格式:變數名[ ] 【從做往右預設從0開始,從右往左預設從-1開始】(正負數都可以取值) 切片:對操作的對象截取其中一部分的操作(正負數都可以切,預設從左往右) 切 ...
  • 上一篇我們已經初步的構建起了一個學生管理系統的模型,現在接著來繼續完善它吧。 1、上傳圖片/文件等資源 有時候需要添加一些附件,例如,新生剛入學,大家相互之間還不熟悉,希望能通過照片來加深印象,並且方便教學管理。 首先,對demo/urls.py文件進行改造,給urlpatterns添加static ...
  • 一.http協議 二.hibernate緩存模式,級別;Hibernate和mybatis的區別和優缺點 三.SQL優化經驗 四.分散式集群和Redis 五.Spring Aop,動態代理; 六.多線程安全問題,多線程實現 thread local 一.HTTP協議(HyperText Transf ...
  • 最近在客戶項目上剛好遇到一個問題,項目需求是要獲取某台機床的實時狀態,問題點剛好就在於該機床不是傳統意義上的數控機床,也不是PLC控制器,只有一個上傳下載程式文件的應用程式,上面剛好有幾個按鈕可以大概判斷當前工作狀態,轉眼一想,是否可以實時獲取幾個按鈕的狀態,從而簡單分析下就確定機床加工狀態。 說乾 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...