天天看點

python的基礎講解

1. 運作python代碼。

在d盤下建立一個t1.py檔案内容是:

print('hello world')      

打開windows指令行輸入cmd,确定後 寫入代碼python d:t1.py

python的基礎講解
python的基礎講解

您已經運作了第一個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的值為:"魯迅本人"

變量的作用:昵稱,其代指記憶體裡某個位址中儲存的内容

python的基礎講解

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 = '太白金星'      
python的基礎講解
name1 = '太白金星'
name2 = name1
name3 = name2      
python的基礎講解

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呢?這是因為代碼是從上到下依次判斷,隻要滿足一個,就不會再往下走啦,這一點一定要清楚呀!