第三章 基礎(chǔ)語法
基于3.X
1. 變量
- 變量名只能包含字母、數(shù)字和下劃線。變量名可以字母或下劃線打頭,但不能以數(shù)字打頭。
- 變量名不能包含空格,但可使用下劃線來分隔其中的單詞。
- 不要將Python關(guān)鍵字和函數(shù)名用作變量名。
- 變量名應(yīng)既簡(jiǎn)短又具有描述性。
- 慎用小寫字母l 和大寫字母O,因?yàn)樗鼈兛赡鼙蝗隋e(cuò)看成數(shù)字1和0。
2. 基本數(shù)據(jù)類型(標(biāo)準(zhǔn)數(shù)據(jù)類型、內(nèi)建數(shù)據(jù)類型、內(nèi)置數(shù)據(jù)類型)
- Python是動(dòng)態(tài)語言,不需要先聲明變量的類型再使用。Python的變量指向什么類型的數(shù)據(jù),它就是那種數(shù)據(jù)類型。我一般把它理解成沒有類型的指針(或者引用)
2.1 數(shù)字
支持4個(gè)數(shù)字類型
- int(有符號(hào)整型)
- long(長(zhǎng)整型[也可以代表八進(jìn)制和十六進(jìn)制])
- float(浮點(diǎn)型)
- complex(復(fù)數(shù))
>>> a= 1
>>> print(type(a))
<class 'int'>
>>> a= 2.1
>>> print(type(a))
<class 'float'>
>>> a= 1+2j
>>> print(type(a))
<class 'complex'>
>>>
注意:long 類型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 類型數(shù)據(jù)溢出后會(huì)自動(dòng)轉(zhuǎn)為long類型。在 Python3.X 版本中 long 類型被移除,使用 int 替代。
2.2 字符串
字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符。
聲明:
s="a1a2···an"(n>=0)
- 字符串可以看成字符數(shù)組進(jìn)行取值
- 字符串使用‘+’加號(hào)進(jìn)行拼接
2.3 元組(tuple)
元組用 () 標(biāo)識(shí)。內(nèi)部元素用逗號(hào)隔開。但是元組不能二次賦值。
classmates = ('Michael', 'Bob', 'Tracy')
tinytuple = (123, 'john')#成員亦可不不同的數(shù)據(jù)
2.4 列表
列表用 [ ] 標(biāo)識(shí),是 python 最通用的復(fù)合數(shù)據(jù)類型。
列表中值的切割也可以用到變量 [頭下標(biāo):尾下標(biāo)] ,就可以截取相應(yīng)的列表,從左到右索引默認(rèn) 0 開始,從右到左索引默認(rèn) -1 開始,下標(biāo)可以為空表示取到頭或尾。
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
## list[0] # 列表的第一個(gè)元素
## list[1:3] # 第二個(gè)至第三個(gè)元素
## list[2:] # 從第三個(gè)開始至列表末尾的所有元素
## tinylist * 2 # 列表兩次
## list + tinylist # 組合的列表
提示:最大區(qū)別在于元組的元素是不可以修改的,所以元組被稱為不可變列表
2.5 字典
- Key-Value鍵值對(duì)
- 字段是無序集合,使用key來存取
dict = {}
dict['one'] = "This is one"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
6. 布爾型
- Python使用True和False代表真和假。
7. None空值
- Python使用None代表空值,與邏輯值False是不同的。
- 可以理解成C中的空指針
3. 控制語句
3.1 判斷語句if
age = 20
if age >= 18:
print('your age is', age)
print('adult')
age = 3
if age >= 18:
print('your age is', age)
print('adult')
else:
print('your age is', age)
print('teenager')
## if <條件判斷1>:
## <執(zhí)行1>
## elif <條件判斷2>:
## <執(zhí)行2>
## elif <條件判斷3>:
## <執(zhí)行3>
## else:
## <執(zhí)行4>
3.1 循環(huán)語句for、while
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
- 提示:whil語句支持break和continue。
- python不支持switch語句。
4. 函數(shù)
- 使用關(guān)鍵字def,函數(shù)名,括號(hào)、冒號(hào)
- 支持返回多個(gè)值
def my_abs(x):
if x >= 0:
return x
else:
return -x
import math
def move(x, y, step, angle=0):# 計(jì)算坐標(biāo)
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
5. 基本輸入輸出
5.1 鍵盤輸入函
-
input()函數(shù)
name = input('please enter your name: ')
print('hello,', name)
5.2 print函數(shù)
- 3.x開始
print()函數(shù)是需要加上括號(hào)的
5.3 文件讀取
- 文件讀取和寫入都是使用
open()獲得文件對(duì)象,再進(jìn)行操作
5.4 文件寫入
f = open('./test.txt','r') #打開文件,常用的參數(shù):
#r:只讀
#w:寫入,如果文件存在會(huì)清空,如果文件不存在會(huì)創(chuàng)建
#a:追加,如果文件存在會(huì)在末尾追加,如果文件不存在會(huì)創(chuàng)建
f.read() #參數(shù)是讀取的數(shù)據(jù)數(shù)目,默認(rèn)是所有內(nèi)容
f.readline() #讀取一行
f.readlines() #讀取所有行
print(f.tell()) #當(dāng)前文件對(duì)象移動(dòng)到的位置
f.seek(0) #將文件對(duì)象移動(dòng)到指定位置
print(f.tell())
#f.write('') #將字符串寫入文件中,返回寫入的字符數(shù)
f.close() #文件關(guān)閉
with open('./test.txt','r') as f:
print(f.read())