1. 執行python程式碼。
在d盤下建立一個t1.py檔案內容是:
print('hello world')
開啟windows命令列輸入cmd,確定後 寫入程式碼python d:t1.py
您已經執行了第一個python程式, 即:終端---->cmd-----> python 檔案路徑。 回車搞定~
2. 直譯器。
上一步中執行 python d:t1.py 時,明確的指出 t1.py 指令碼由 python 直譯器來執行。
如果想要類似於執行shell指令碼一樣執行python指令碼,例: ./t1.py
,那麼就需要在 hello.py 檔案的頭部指定直譯器,如下:
1 | #!/usr/bin/env python |
---|---|
2 | |
3 | print "hello,world" |
如此一來,執行: ./t1.py
即可。
ps:執行前需給予t1.py 執行許可權,chmod 755 t1.py
3. 註釋。
當行註釋:# 被註釋內容
多行註釋:'''被註釋內容''',或者"""被註釋內容"""
4. 變數
變數是什麼? 變數:把程式執行的中間結果臨時的存在記憶體裡,以便後續的程式碼呼叫。
4.1、宣告變數
lux = '魯迅本人'
上述程式碼宣告瞭一個變數,變數名為: lux,變數name的值為:"魯迅本人"
變數的作用:暱稱,其代指記憶體裡某個地址中儲存的內容
4.2、變數定義的規則:
-
變數名只能是 字母、數字或下劃線的任意組合
-
變數名的第一個字元不能是數字
-
以下關鍵字不能宣告為變數名 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
-
變數的定義要具有可描述性。
4.3、推薦定義方式
#駝峰體
AgeOfOldboy = 56
NumberOfStudents = 80
#下劃線
age_of_oldboy = 56
number_of_students = 80
你覺得哪種更清晰,哪種就是官方推薦的,我想你肯定會先第2種,第一種AgeOfOldboy咋一看以為是AngelaBaby
4.4、變數的賦值
lux = '魯迅本人'、
name = '太白金星'
name1 = '太白金星'
name2 = name1
name3 = name2
4.5、定義變數不好的方式舉例
-
變數名為中文、拼音
-
變數名過長
-
變數名詞不達意
5. 常量
常量即指不變的量,如pai 3.141592653..., 或在程式執行過程中不會改變的量
舉例,假如老男孩老師的年齡會變,那這就是個變數,但在一些情況下,他的年齡不會變了,那就是常量。在Python中沒有一個專門的語法代表常量,程式設計師約定俗成用變數名全部大寫代表常量
AGE_OF_OLDBOY = 56
c語言中有專門的常量定義語法,const int count = 60;
一旦定義為常量,更改即會報錯
6. 基礎資料型別(初始)。
什麼是資料型別?
我們人類可以很容易的分清數字與字元的區別,但是計算機並不能呀,計算機雖然很強大,但從某種角度上看又很傻,除非你明確的告訴它,1是數字,“漢”是文字,否則它是分不清1和‘漢’的區別的,因此,在每個程式語言裡都會有一個叫資料型別的東東,其實就是對常用的各種資料型別進行了明確的劃分,你想讓計算機進行數值運算,你就傳數字給它,你想讓他處理文字,就傳字串型別給他。Python中常用的資料型別有多種,今天我們暫只講3種, 數字、字串、布林型別
6.1、整數型別(int)。
int(整型)
在32位機器上,整數的位數為32位,取值範圍為-231~231-1,即-2147483648~2147483647
在64位系統上,整數的位數為64位,取值範圍為-263~263-1,即-9223372036854775808~9223372036854775807
除了int之外, 其實還有float浮點型, 複數型,但今天先不講啦
6.2、字串型別(str)。
在Python中,加了引號的字元都被認為是字串!
>>> name = "Alex Li" #雙引號
>>> age = "22" #只要加引號就是字串
>>> age2 = 22 #int
>>>
>>> msg = '''My name is taibai, I am 22 years old!''' #我擦,3個引號也可以
>>>
>>> hometown = 'ShanDong' #單引號也可以
那單引號、雙引號、多引號有什麼區別呢? 讓我大聲告訴你,單雙引號木有任何區別,只有下面這種情況 你需要考慮單雙的配合
msg = "My name is Alex , I'm 22 years old!"
多引號什麼作用呢?作用就是多行字串必須用多引號
msg = '''
今天我想寫首小詩,
歌頌我的同桌,
你看他那烏黑的短髮,
好像一隻炸毛雞。
'''
print(msg)
字串拼接
數字可以進行加減乘除等運算,字串呢?讓我大聲告訴你,也能?what ?是的,但只能進行"相加"和"相乘"運算。
>>> name
'Alex Li'
>>> age
'22'
>>>
>>> name + age #相加其實就是簡單拼接
'Alex Li22'
>>>
>>> name * 10 #相乘其實就是複製自己多少次,再拼接在一起
'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'
注意,字串的拼接只能是雙方都是字串,不能跟數字或其它型別拼接
>>> type(name),type(age2)
(<type 'str'>, <type 'int'>)
>>>
>>> name
'Alex Li'
>>> age2
22
>>> name + age2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects #錯誤提示數字 和 字元 不能拼接
6.3、布林值(True,False)。
布林型別很簡單,就兩個值 ,一個True(真),一個False(假), 主要用記邏輯判斷
但其實你們並不明白對麼? let me explain, 我現在有2個值 , a=3, b=5 , 我說a>b你說成立麼? 我們當然知道不成立,但問題是計算機怎麼去描述這成不成立呢?或者說a< b是成立,計算機怎麼描述這是成立呢?
沒錯,答案就是,用布林型別
>>> a=3
>>> b=5
>>>
>>> a > b #不成立就是False,即假
False
>>>
>>> a < b #成立就是True, 即真
True
7. 程式互動
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 將使用者輸入的內容賦值給 name 變數
name = input("請輸入使用者名稱:")
# 列印輸入的內容
print(name)
執行指令碼就會發現,程式會等待你輸入姓名後再往下繼續走。
可以讓使用者輸入多個資訊,如下
#!/usr/bin/env python
# -*- coding: utf-8 -*-
name = input("What is your name?")
age = input("How old are you?")
hometown = input("Where is your hometown?")
print("Hello ",name , "your are ", age , "years old, you came from",hometown)
8. 流程控制之--if。
假如把寫程式比做走路,那我們到現在為止,一直走的都是直路,還沒遇到過分叉口,想象現實中,你遇到了分叉口,然後你決定往哪拐必然是有所動機的。你要判斷那條岔路是你真正要走的路,如果我們想讓程式也能處理這樣的判斷怎麼辦? 很簡單,只需要在程式裡預設一些條件判斷語句,滿足哪個條件,就走哪條岔路。這個過程就叫流程控制。
if...else 語句
單分支
if 條件:
滿足條件後要執行的程式碼
雙分支
"""
if 條件:
滿足條件執行程式碼
else:
if條件不滿足就走這段
"""
AgeOfOldboy = 48
if AgeOfOldboy > 50 :
print("Too old, time to retire..")
else:
print("還能折騰幾年!")
縮排
這裡必須要插入這個縮排的知識點
你會發現,上面的if程式碼裡,每個條件的下一行都縮排了4個空格,這是為什麼呢?這就是Python的一大特色,強制縮排,目的是為了讓程式知道,每段程式碼依賴哪個條件,如果不通過縮排來區分,程式怎麼會知道,當你的條件成立後,去執行哪些程式碼呢?
在其它的語言裡,大多通過{}
來確定程式碼塊,比如C,C++,Java,Javascript都是這樣,看一個JavaScript程式碼的例子
var age = 56
if ( age < 50){
console.log("還能折騰")
console.log('可以執行多行程式碼')
}else{
console.log('太老了')
}
在有{}
來區分程式碼塊的情況下,縮排的作用就只剩下讓程式碼變的整潔了。
Python是門超級簡潔的語言,發明者定是覺得用{}
太醜了,所以索性直接不用它,那怎麼能區分程式碼塊呢?答案就是強制縮排。
Python的縮排有以下幾個原則:
-
頂級程式碼必須頂行寫,即如果一行程式碼本身不依賴於任何條件,那它必須不能進行任何縮排
-
同一級別的程式碼,縮排必須一致
-
官方建議縮排用4個空格,當然你也可以用2個,如果你想被人笑話的話。
多分支
回到流程控制上來,if...else ...可以有多個分支條件
if 條件:
滿足條件執行程式碼
elif 條件:
上面的條件不滿足就走這個
elif 條件:
上面的條件不滿足就走這個
elif 條件:
上面的條件不滿足就走這個
else:
上面所有的條件不滿足就走這段
寫個猜年齡的遊戲吧
age_of_oldboy = 48
guess = int(input(">>:"))
if guess > age_of_oldboy :
print("猜的太大了,往小裡試試...")
elif guess < age_of_oldboy :
print("猜的太小了,往大里試試...")
else:
print("恭喜你,猜對了...")
上面的例子,根據你輸入的值不同,會最多得到3種不同的結果
再來個匹配成績的小程式吧,成績有ABCDE5個等級,與分數的對應關係如下
A 90-100
B 80-89
C 60-79
D 40-59
E 0-39
要求使用者輸入0-100的數字後,你能正確列印他的對應成績
score = int(input("輸入分數:"))
if score > 100:
print("我擦,最高分才100...")
elif score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 60:
print("C")
elif score >= 40:
print("D")
else:
print("太笨了...E")
這裡有個問題,就是當我輸入95的時候 ,它列印的結果是A,但是95 明明也大於第二個條件elif score >=80:
呀, 為什麼不列印B呢?這是因為程式碼是從上到下依次判斷,只要滿足一個,就不會再往下走啦,這一點一定要清楚呀!