Python學習第一周(Python3.x),pythonpython3.x
第一周學習記錄,這個階段學習Python的文法。
一、開發IDE,使用的是PyCharm,建立一個project後,可以在裡面設定一些預設的代碼
# Author:BH
這是關於PyCharm設定相關,步驟:
點擊 -->edictor-->Code Style-->File and Code Templates-->Python Script
在右側的裡面輸入要添加的內容。(這部分有個注意,後面說)然後apply-->ok 即可設定成功,需要我們重新建立一個Python file即可看到效果。
還有關於程式的運行,滑鼠點擊右鍵-->Run
二、程式
2.1 Hello World
print ("Hello World!")
直接輸出:
Hello World!
Process finished with exit code 0
2.2 變數
name = "Hei Han"name2 = nameprint("My name is ",name, name2)name = "Xu Da"print(name,name2)gf_of_zxy = "Liu De Hua"
定義變數時,直接寫變數的名字即可,這是我在做了iOS時與OC/C語言不同的地方,很簡單的定義,在OC/C都是需要首先設定資料類型的,以OC為例
Nsstring *name = @"Hei Han"
在Python中,不需要指定資料類型,這個很簡潔。列印name的時候也和OC不同,OC在後面是一定要加上預留位置的,%@、%d。。。。
Python裡表達比較長的變數時候,是小寫+底線,OC中常用是駝峰方式,第一個單詞小寫,以後單字首大寫,這個就不用多說了,做某一種語言開發的都有自己的規則。
2.3 input 和 條件判斷
# Author:BHimport getpass_username = "bh"_password = "123"username = input("username:")# password = getpass.getpass("password:") # 密文輸入 getpass 在pycharm中 不好用password = input("password:")# print(username, password)if username == _username and password == _password: print("Welcome user {name} login...".format(name = username))else: print("Invalid username or password")
上面代碼,是簡單的一個登入小程式。這裡需要學習的是input
input 輸入函數,定義username 和 password 進行輸入,當使用input函數,程式運行時,就會讓使用者進行輸入操作。
條件判斷,if...else,這裡的文法與OC不同,並且使用的是 "and" OC中是邏輯運算子"&&",if裡面的代碼也不是使用{},而是使用:來決定範圍
這裡需要注意一點,在條件判斷下面的代碼,必須要縮排,否則報錯,縮排說明下面代碼的範圍屬於if語句。
上面的代碼中還包含了import getpass,import是匯入 架構/類庫的意思 getpass 是Python中的一個對於密碼密文顯示的庫,但是在PyCharm中,對於這個庫的支援是不行的,我們可以在終端下,執行這個指令碼,可以看到是密文。上面列印,還有一段是格式化輸出,下面就介紹Python幾種格式化輸出。
2.4 注釋
Python注釋,單行注釋:在代碼前加 #code
多行注釋:''' code '''
其中''' ''' 還可以用來表示多行字串
2.4 字串格式化
# Author:BH# raw_input 2.x input 3.xname = input("name:")age = int(input("age:")) # 強制轉換print(type(age), type(str(age))) #列印資料類型job = input("job:")salary = input("salary:")info = '''------------ info of %s ---------Name:%sAge:%dJob:%sSalary:%s''' % (name,name,age,job,salary)info2 = '''------------ info of {_name} ---------Name:{_name}Age:{_age}Job:{_job}Salary:{_salary}''' .format(_name = name, _job = job, _age = age, _salary = salary)info3 = '''------------ info of {0} ---------Name:{0}Age:{1}Job:{2}Salary:{3}''' .format(name,job,age,salary)print(info3)
三種字串,格式化方式
2.4.1
info = '''------------ info of %s ---------Name:%sAge:%dJob:%sSalary:%s''' % (name,name,age,job,salary)
和OC語言類似,使用預留位置佔位,%s 代表字串,%d就是整型,%f 就是浮點型最後加一個%(變數名)
2.4.2
info2 = '''------------ info of {_name} ---------Name:{_name}Age:{_age}Job:{_job}Salary:{_salary}''' .format(_name = name, _job = job, _age = age, _salary = salary)
{形參} 佔位,最後.format()給各個參數賦值。
info3 = '''------------ info of {0} ---------Name:{0}Age:{1}Job:{2}Salary:{3}''' .format(name,job,age,salary
這種方式{數字順序}後面接.format(變數名),這種方式不好,0 1 2這類數字很難表達具體含義,不推薦
2.5迴圈
2.5.1 while
# Author:BHcount = 0while True: print("count:",count) count += 1 if count == 1000 : break
和OC類似 while 條件: 縮排進入迴圈範圍
2.5.2 for
for i in range(10): print("-------",i) for j in range(10): print(j) if j >5: break
格式:for 臨時變數 in range(迴圈次數):
迴圈中都設計break和continue關鍵字,與OC語言相同,break跳出當前迴圈,迴圈結束;continue跳出當次迴圈,繼續下一次迴圈
上面紅字說到注意的地方,其實就是Python版本的問題,現在Python2.x 和 Python3.x 我的文字都是基於Python3.x
注意1:Python2.x 不支援中文所以要在指令碼程式最上面加上一句代碼
# -*- coding:utf-8 -*-
代碼編碼utf-8否則,輸入中文報錯。Python3.x不存在這個問題。
注意2:Python2.x 中raw_input 和 Python3.x的input等價
注意3:Python3.x 中input函數輸入 預設是字串類型,如果想要輸入整型,需要強制轉換。