1. 程式人生 > >學習python課程第三天

學習python課程第三天

學習python 錯誤 3.1 不同 反向 三引號 尋求 pre 語法

今天先把變量給補充一下:

一.變量具備的三個特征是:

1. id id是變量的唯一編號, 在內存裏地址不同,id就不同.

2.type 是指變量值的類型.

3.value 是指變量的值.

等號比較的是value, is比較的是id, id相同則 type和value肯定相同.

value相同則type肯定相同,但id不一定相同 如下:

>>> x=‘Info Egon:18‘
>>> y=‘Info Egon:18‘
>>> id(x)
4376607152
>>> id(y)
4376607408
>>> 
>>> x == y
True
>>> x is y
False


二.小整數池:
1、在交互式模式下
Python實現int的時候有個小整數池。為了避免因創建相同的值而重復申請內存空間所帶來的效率問題, Python解釋器會在啟動時創建出小整數池,範圍是[-5,256],該範圍內的小整數對象是全局解釋器範圍內被重復使用,永遠不會被GC回收

每創建一個-5到256之間的整數,都是直接從這個池裏直接拿走一個值,例如
>>> y=4
>>> id(y)
4297641184
>>> 
>>> x=3
>>> x+=1
>>> id(x)
4297641184

在pycharm中
但在pycharm中運行python程序,pycharm出於對性能的考慮,會擴大小整數池的範圍,其他的字符串等不可變類型也都包含在內一便采用相同的方式處理了,我們只需要記住這是一種優化機制,至於範圍到底多大,無需細究



三.常量:
常量即指不變的量,如pai 3.141592653..., 或在程序運行過程中不會改變的量
舉例,假如老男孩老師的年齡會變,那這就是個變量,但在一些情況下,他的年齡不會變了,那就是常量。在Python中沒有一個專門的語法代表常量,程序員約定俗成用變量名全部大寫代表常量




四.註釋:

代碼註釋分單行和多行註釋, 單行註釋用#,多行註釋可以用三對雙引號""" """

代碼註釋的原則:

1. 不用全部加註釋,只需要在自己覺得重要或不好理解的部分加註釋即可

2. 註釋可以用中文或英文,但不要用拼音.

五.基本數據類型:

1. 什麽是數據類型

變量值即我們存放的數據,數據類型及變量值的類型


2. 變量值為何要區分類型
因為變量值使用記錄現實世界中事物的特征,針對不同的特征就應該用不同類型的值去標識

3. 如何應用數據類型
   數字 :

int整型: 定義:age=10 age=int(10)
用於標識:年齡,等級,身份證號,qq號,個數

float浮點型: 定義:salary=3.1 salary=float(3.1)
用於標識:工資,身高,體重,
  字符串 str:
在python中,加了引號的字符就是字符串類型,python並沒有字符類型。
定義:name=‘egon‘ name=str(‘egon‘) 
用於標識:描述性的內容,如姓名,性別,國籍,種族.

(單引號跟雙引號沒有任何區別,但是要考慮單雙引號的配合.而三引號是在多行字符串的情況下使用.)
字符串是可以加跟乘的(只能字符串加字符串,不能字符串加其他類型):
name=‘egon‘
age=‘18‘
name+age 
‘egon18‘
 name*5

‘egonegonegonegonegon‘

列表 list:
在[]內用逗號分隔,可以存放n個任意類型的值
定義:students=[‘egon‘,‘alex‘,‘wupeiqi‘,] students=list([‘egon‘,‘alex‘,‘wupeiqi‘,]) 
用於標識:存儲多個值的情況,比如一個人有多個愛好


字典 dict:
為何還要用字典?
存放一個人的信息:姓名,性別,年齡,很明顯是多個值,既然是存多個值,我們完全可以基於剛剛學習的列表去存放,如下
info=[‘egon‘,‘male‘,18]
定義列表的目的不單單是為了存,還要考慮取值,如果我想取出這個人的年齡,可以用
info[2]
18
但這是基於我們已經知道在第3個位置存放的是年齡的前提下,我們才知道索引2對應的是年齡
即:
        name, sex, age
info=[‘egon‘,‘male‘,18]
而這完全只是一種假設,並沒有真正意義上規定第三個位置存放的是年齡,於是我們需要尋求一種,即可以存放多個任意類型的值,又可以硬性規定值的映射關系的類型,比如key=value,這就用到了字典.

在{}內用逗號分隔,可以存放多個key:value的值,value可以是任意類型 定義:info={‘name‘:‘egon‘,‘age‘:18,‘sex‘:18} #info=dict({‘name‘:‘egon‘,‘age‘:18,‘sex‘:18}) 用於標識:存儲多個值的情況,每個值都有唯一一個對應的key,可以更為方便高效地取值.



六. 布爾值:
1.布爾值,一個True一個False
計算機俗稱電腦,即我們編寫程序讓計算機運行時,應該是讓計算機無限接近人腦,或者說人腦能幹什麽,計算機就應該能幹什麽,人腦的主要作用是數據運行與邏輯運算,此處的布爾類型就模擬人的邏輯運行,即判斷一個條件成立時,用True標識,不成立則用False標識
 a=3
 b=5
 
 a > b  不成立就是False,即假
False
 
 a < b  成立就是True, 即真
True

2.所有數據類型都自帶布爾值 1、None,0,空(空字符串,空列表,空字典等)三種情況下布爾值為False 2、其余均為真.



七. 輸入輸出:
1.在python3中的input會將用戶輸入的任何內容都存成str類型
name=input("請輸入您的用戶名: ") name="egon"
pwd=input("請輸入您的密碼: ") pwd=‘123‘

if name == ‘egon‘ and pwd == ‘123‘:
print(‘登陸成功‘)
else:
print(‘用戶名或者密碼輸入錯誤‘)
(在python3中 input:用戶輸入任何值,都存成字符串類型. 在python2中 input:用戶輸入什麽類型,就存成什麽類型raw_input:等於python3的input)


2.程序中經常會有這樣場景:要求用戶輸入信息,然後打印成固定的格式
比如要求用戶輸入用戶名和年齡,然後打印如下格式:

My name is xxx,my age is xxx.

很明顯,用逗號進行字符串拼接,只能把用戶輸入的名字和年齡放到末尾,無法放到指定的xxx位置,而且數字也必須經過str(數字)的轉換才能與字符串進行拼接。

這就用到了占位符,如:%s、%d

%s字符串占位符:可以接收字符串,也可接收數字 :
print(‘My name is %s,my age is %s‘ %(‘egon‘,18))
%d數字占位符:只能接收數字 :
print(‘My name is %s,my age is %d‘ %(‘egon‘,18))



八 基本運算符 :
1 算術運算

print(10 + 1.1)

print(10 / 3) 有整數部分有余數部分

print(10 // 3) 去掉小數部分

print(10 % 3) 取余

print(2 ** 3)
2. 比較運算
比較運算只能在同類型之間進行,其中int與float同屬於數字類型
print(10 > 3.1)
print(10 >= 10)
(比較字母的時候會按照順序來比大小,順序越往後越大)

3. 賦值運算:

增量賦值: age=18 age=age + 1 age+=1 age=age+1
鏈式賦值:  x=10  y=x  print(x is y)       a=b=c=d=e=111  print(a is b is c is d is e) .
交叉賦值:  x=10  y=20  temp=x  x=y  y=temp  x,y=y,x   print(x,y)

解壓賦值:
a=nums[0] b=nums[1] c=nums[2] d=nums[3] e=nums[4]  a,b,c,d,e=nums   print(a,b,c,d,e)
(如果只想取三個值.變量名可以用_代替,_等於占位符,是一個無用的變量名)

4. 邏輯運算 and or not :

and:連接左右兩個條件,兩個條件必須都成立,最後結果才為True,一旦左邊條件為假則最終結果就為假,沒有必要再去計算右面條件的值.

or:連接左右兩個條件,兩個條件但凡有一個成立,結果就為True,一旦左邊條件為True則最終結果就為True,沒有必要再去計算右面條件的值,
一旦左邊條件為False,還需要去計算右面條件的值,如果為True,最終也True .
not:取反向結果.

5.身份運算 :
is是比較id == 是比較值

學習python課程第三天