1. 程式人生 > >python如何學習(三)

python如何學習(三)

處理 ons 情況 相關信息 後端 int 自動 整數 case

最近開始整理python的資料,博主建立了一個qq群,希望給大家提供一個交流的同平臺 78486745 。

一、第一個Python程序--HelloWorld

python的第一個程序也從hello world開始吧:

#!/usr/bin/env python
#! -*- coding:utf-8 -*-
print("Hello world!")

執行結果:

"C:\Program Files\Python37\python.exe" D:/python/Day1/test/HelloWorld.py
Hello world!

Process finished with exit code 0

二、If-else判斷

2.1 If-else語法規範

以下是if-else判斷的語法結構規範:

if condition1:
    command_layer1_1
    if condition2:
        command_layer2_2
    else:
        command_layer2_2
else:
    command_layer1_2  

2.2 示例程序

以下為一個演示兩層if-else循環的程序:

#!/usr/bin/env python                                         #頂格編寫
#! -*- coding:utf-8 -*-
user_input = input("Please input you username:")
if user_input == "Bob":                                       #註意這裏的冒號結尾
    passwd_input = input("Please input your password:")       #註意從這裏開始,第一個if條件為真時需要執行的動作語句均需要左縮進4個空格
    if passwd_input == "password":                            #第一個if下的第二個if,仍然要左縮進4個空格,同時冒號結尾
        print("Welcome login,%s!" %user_input)                #第二層if條件為真時執行的動作語句,需要在第一層語句基礎上再縮進4個空格,因此需要縮進8個空格
    else:                                                     #第二層if-else中的else,因此需要與第二層if對齊,縮進4個空格
        print("Invalid username or password, please check your input") #第二層if-else條件為假時執行的動作語句,同樣需要與第二層if一樣縮進8個空格
else:                                                         #第一層if-else中的else關鍵字,頂格冒號結尾
    print("Invalid username or password, please check your input") #第一層if-else判斷條件為假時執行的動作,與第一層if一樣需要縮進4個空格

說明:該示例程序僅為演示多層if-else的語法結構,程序本身的設計存在漏洞;空格縮進在pycharm IDE環境中會被自動處理,但在普通文件編輯器中需要手動設置。
以下為改良版示例程序,通過引入對if的多條件判斷來避免上述程序的漏洞:

#!/usr/bin/env python
#! -*- coding:utf-8 -*-
username=input("Please input you username:\n")
passwd=input("Please input you password:\n")
if username == "Bob" and passwd == "password":
    print("Welcome login, %s!" %username)
else:
    print("Invalid username or password, please check your input!")

此時只有用戶名和密碼同時輸入正確了才會給出相應提示,否則均提示口令無效,避免暴力破解。

2.3 if-elif-else擴展

上述判斷均為單一式的if-else判斷,以下為if-elif-else的判斷擴展:
語法結構:

if condition1:
    command1
elif condition2:
    command2
elif condition3:
    command3
else condition4:
    command4

不過這種結構僅僅適用於單一條件存在多種case情況下,語法結構看起來還是比較簡單,當然頂格、左縮進4個空格和冒號這些規範一樣要遵循。
還是來一個示例程序加深理解:

#!/usr/bin/env python
#! -*- coding:utf-8 -*-
age=int(input("Please input your age\n"))
if age >= 18:
    print("Oh, you‘re an adult\n")
elif age >=6:
    print("Ha, you‘re a teenager\n")
else:
    print("Come on, little kid!\n")

三、For循環

最近開始整理python的資料,博主建立了一個qq群,希望給大家提供一個交流的同平臺 78486745 。

3.1 for循環語法規範

For循環的基本語法規範是:

for variable in XXX:
    loop command

其中variable表示命名的變量,一般程序中使用i,j等等,XXX表示變化的範圍,可以是list列表,一般會考慮使用range函數,來表示一個整數序列,如range(5)就表示小於5的整數序列,即0-4。 語法規範中同樣需要for語句後面的結尾冒號,以及循環體中的4個空格的左縮進。

3.2 示例程序

猜數字遊戲,通過系統生成一個隨機數作為預設年齡,對用戶提供3次猜的機會,前兩次如果沒有猜中給出數字範圍大小的提示,如果第3次還沒有猜中則給予鼓勵提示,同時打印出這個預設的數字,當然三次當中有任何一次猜中會給用戶猜中提示的:

#!/usr/bin/env python
#! -*- coding:utf-8 -*-
import random #導入隨機數模塊
Age=random.randrange(10)#隨機生成一個小於10的整數(0-9,不包括負數),並賦值給Age
for i in range(3):
    if i < 2:
        guess_number=int(input("Please input the age of my dog you guess:\n"))
        if guess_number > Age:
            print("The age you guess is a little big, think smaller!\n")
        elif guess_number < Age:
            print("The age you guess is a little small, think bigger!\n")
        else:
            print("Bingo, you got the number,congratulations!\n")
            break
    else:
        guess_number=int(input("Please input the age of my dog you guess:\n"))
        if guess_number == Age:
            print("Bingo, you got the number,congratulations!\n")
        else:
            print("Oh,you just got bad luck, come to try again, you can do it! The actual age of my dog is %d...\n"% Age)

註意:

  1. 為便於程序調試可先對Age賦值固定的數字
  2. 前兩次如果猜中了就需要退出循環,這裏使用了break關鍵字,意思是跳出整個循環,與之相對應的還有continue關鍵字,用於跳出當次循環,二者的使用區別在於是否執行完整個集合

OK,現在來改進下程序, 當用戶連續三次猜錯後繼續給機會,讓用戶選擇是繼續猜還是直接退出,如果繼續則再一次獲得三次猜的機會,如此循環下去。還是用for循環吧:

#!/usr/bin/env python
#! -*- coding:utf-8 -*-
Age=22
counter=0
for i in range(10):
    if counter < 3:
        guess_number=int(input("Plese input your guess number:\n"))
        if guess_number == Age:
            print("You got the number, congratulations!")
            break
        elif guess_number > Age:
            print("The number you guessed is too big, guess a smaller one\n")
        else:
            print("The number you guessed is too small, guess a bigger one\n")
        counter += 1
    elif counter == 3:
        continue_flag=input("Do you want to continue? Please type Y to continue or N to quit:\n ")
        if continue_flag == "Y":
            counter = 0
        else:
            print("Bye")
            break
    else:
        print("You‘ve tried too many times.")

這裏為了保證每一個輪回中的第四次(上述程序中的第四次和第八次)能讓程序繼續循環,引入了另外一個變量來進行計數並重置。把for循環換作while循環看起來差不多:

#!/usr/bin/env python
#! -*- coding:utf-8 -*-
Age=22
i=0
counter=0
while counter < 10:
    if i < 3:
        guess_number=int(input("Plese input your guess number:\n"))
        if guess_number == Age:
            print("You got the number, congratulations!")
            break
        elif guess_number > Age:
            print("The number you guessed is too big, guess a smaller one\n")
        else:
            print("The number you guessed is too small, guess a bigger one\n")
        i += 1
    else:
        continue_flag=input("Do you want to continue? Please type Y to continue or N to quit:\n ")
        if continue_flag == "Y":
            i = 0
        else:
            print("Bye")
            break
    counter +=1

小結

  1. Python是一門主流且發展迅猛的開發語言,目前存在2.x和3.x兩個版本分支,前端後端都能勝任,功能強大,在互利網公司應用廣泛,值得托付;
  2. Python程序的開發需要安裝解釋器和IDE,建議使用pycharm,2.x和3.x下的默認字符編碼不同,永遠推薦使用utf-8編碼,包括程序編碼和解釋的編碼兩個層面;
  3. 系統自帶模塊和自定義編寫的模塊均可以通過import導入使用;
  4. 在進行python程序開發時,註意代碼需要分層體現,第一層代碼頂格編寫,第二層(用在第一次出現的流程控制語句中的代碼塊)左縮進4個空格;
  5. input用於接收用戶輸入,默認輸入的數據類型是字符串,可通過int關鍵字轉換為整數。print可進行簡單輸出,如要格式化輸出則需要借助%s %d %f等來實現,具體視數據類型而定;
  6. 流程控制語句if-else判斷和for、while循環都需要註意代碼書寫格式,流程控制語句關鍵字一定是以冒號結尾,具體的流程控制代碼塊則需要左縮進處理,第一層左縮進4個空格,第二層8個空格,以此類推;
  7. continue和break可分別用於退出當前(當次)流程控制和整個循環,課堂上演示了在for循環中的使用,在if-else判斷中不能使用。

【搜索圓方圓,獲得“python教程”,“python下載”,“python入門”類相關信息。】

python如何學習(三)