1. 程式人生 > >python教程1:Python基礎之數據類型和變量、字符串和編碼

python教程1:Python基礎之數據類型和變量、字符串和編碼

mos 指向 character 文本編輯 字符 支持 isp michael 多個

  視頻鏈接:

  我是在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 = bABC

以Unicode表示的str通過encode()方法可以編碼為指定的bytes,例如:

#純英文字符串可以使用ASCII編碼為bytes
>>> ABC.encode(ascii)
bABC

#中文字符串可以使用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 cant encode characters in position 0-1: ordinal not in range(128)

反過來,如果我們從網絡或磁盤上讀取了字節流,那麽讀到的數據就是bytes。要把bytes變為str,就需要用decode()方法:

>>> bABC.decode(ascii)
ABC
>>> b\xe4\xb8\xad\xe6\x96\x87.decode(utf-8)
中文

  len() 函數

#計算字符串包含多少個字符
>>> len(ABC)
3
>>> len(中文)
2


#計算bytes的字節數
>>> len(bABC)
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基礎之數據類型和變量、字符串和編碼