python教程1:Python基礎之數據類型和變量、字符串和編碼
視頻鏈接:
我是在Linux下玩python的,Linux下默認安裝python,直接打個pyhon3就好了,python大小寫敏感
我們來寫第一個簡單的python程序
#!/usr/bin/env python3 print("Hello World")
怎麽運行呢?有人說是./運行,然而我試了試並不可以....這樣才行.....
python name.py
print裏面也可以輸出多個字符串,用 , 進行分隔,顯示的內容是空格
#!/usr/bin/python print(‘1‘, ‘2‘, ‘3‘)
結果是
1 2 3
也能來計算數字
#!/usr/bin/python print(‘100 + 200 =‘, 100 + 200)
在Python裏面單引號和雙引號是一樣的,所以單引號裏面的還是字符串,結果是
100 + 200 = 300
輸入和輸出
name=input(‘please enter you name:‘) print(‘hello‘,name) #變量可以print出來也可以直接打個變量名
縮進
a = 100 if a >= 0: #以:結尾說明下面的縮進的語句是代碼塊 print(a) #註意!縮進最好是4個空格 else:print(-a)
數據類型
1.整型 int
2.浮點型 float
3.字符串 以單引號或雙引號括起來的任意文本,\可以轉義字符
4.布爾值 要麽是True要麽是False 註意大小寫!!! 與或非
5.空值 用None表示
轉義字符\
print(‘\\\t\\‘) \ print(r‘\\\t\\‘) #前面加一個r就是不轉義 \\\t\\
變量
變量名必須是大小寫英文、數字和_的組合,且不能用數字開頭
a=1 #變量a是一個整數 t_001=‘T007‘ #變量t_007是一個字符串 Answer=True #變量Answer是一個布爾值
在python中,變量分為動態語言和靜態語言
#動態語言,就是變量本身類型不確定 a = 123 # a是整數 print(a) a = ‘ABC‘ # a變為字符串 print(a)
#靜態語言,變量類型已被指定 int a = 123; // a是整數類型變量 a = "ABC"; // 錯誤:不能把字符串賦給整型變量
我們來做個練習
a = ‘ABC‘ #創建了字符串‘ABC‘和變量a,並把a指向‘ABC‘ b = a #創建變量b,並把b指向‘ABC‘ a = ‘XYZ‘ print(b)
問:b的值是什麽?
答案是‘ABC‘
除法
python中有兩種除法
/除法計算結果是浮點數
>>> 9 / 3 3.0
//地板除,計算結果是整數
>>> 10 // 3 3
%求余運算
>>> 10 % 3 1
字符串和編碼
ASCII碼僅僅支持英文
GB2312支持中文
....支持.....
全球上百種語言這麽亂怎麽辦?Unicode編碼標準應運而生,支持所有語言,但是也有缺點用,Unicode編碼比ASCII編碼需要多一倍的存儲空間,在存儲和傳輸上就十分不劃算。所以就有了UTF-8編碼
Python的字符串
在Python 3版本中,字符串是以Unicode編碼的,也就是說,Python的字符串支持多語言
>>> print(‘包含中文的str‘) 包含中文的str
對於單個字符的編碼,Python提供了ord()
函數獲取字符的整數表示,chr()
函數把編碼轉換為對應的字符
>>> ord(‘A‘) 65 >>> ord(‘中‘) 20013 >>> chr(66) ‘B‘ >>> chr(25991) ‘文‘
Python對bytes
類型的數據用帶b
前綴的單引號或雙引號表示要註意區分‘ABC‘
和b‘ABC‘
,前者是str
,後者雖然內容顯示得和前者一樣,但bytes
的每個字符都只占用一個字節
x = b‘ABC‘
以Unicode表示的str
通過encode()
方法可以編碼為指定的bytes
,例如:
#純英文字符串可以使用ASCII編碼為bytes >>> ‘ABC‘.encode(‘ascii‘) b‘ABC‘ #中文字符串可以使用utf-8編碼為bytes >>> ‘中文‘.encode(‘utf-8‘) b‘\xe4\xb8\xad\xe6\x96\x87‘ #中文字符串使用ASCII編碼就會報錯,因為不支持 >>> ‘中文‘.encode(‘ascii‘) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-1: ordinal not in range(128)
反過來,如果我們從網絡或磁盤上讀取了字節流,那麽讀到的數據就是bytes
。要把bytes
變為str
,就需要用decode()
方法:
>>> b‘ABC‘.decode(‘ascii‘) ‘ABC‘ >>> b‘\xe4\xb8\xad\xe6\x96\x87‘.decode(‘utf-8‘) ‘中文‘
len() 函數
#計算字符串包含多少個字符 >>> len(‘ABC‘) 3 >>> len(‘中文‘) 2 #計算bytes的字節數 >>> len(b‘ABC‘) 3 >>> len(b‘\xe4\xb8\xad\xe6\x96\x87‘) 6 >>> len(‘中文‘.encode(‘utf-8‘)) 6
由於python源代碼也是一個文本文件,所以當包含中文的時候,在進行編碼時務必使用utf-8編碼,為了如此,我們通常在文件開頭寫上兩行
#!/usr/bin/env python3 # -*- coding: utf-8 -*-
這裏還需要註意的是在你寫python的文本編輯器裏面最好把編碼改成utf-8才可以
格式化
>>> ‘Hello, %s‘ % ‘world‘ ‘Hello, world‘ >>> ‘Hi, %s, you have $%d.‘ % (‘Michael‘, 1000000) ‘Hi, Michael, you have $1000000.‘
>>> ‘%2d-%02d‘ % (3, 1) ‘ 3-01‘ >>> ‘%.2f‘ % 3.1415926 ‘3.14‘
有些時候,字符串裏面的%
是一個普通字符怎麽辦?這個時候就需要轉義,用%%
來表示一個%
>>> ‘growth rate: %d %%‘ % 7 ‘growth rate: 7 %‘
python教程1:Python基礎之數據類型和變量、字符串和編碼