Python常用運算符和常用數據類型

命名規范:

標識符:即我們自己在寫代碼的時候取得名字。命名的符號。

例如:項目名 project name? 包名:package name? 模塊名即文件名:? ? .py

取名字(標識符)時的規范:由字母數字下劃線組成,但是不能以數字開頭。

命名時不同字母數字之間最好用下劃線隔開,可提升代碼的可讀性? ?例如:test_0222

命名時不能用關鍵字? ?int? ?if? ?while

a=1? ?a為變量名? , 變量名也是標識符也要符合上述規范。

注釋:

單行注釋: ctrl+/? ?

多行注釋:成對單引號、成對雙引號、成對三個引號? ?' '? " "? ''' '''?

常見報錯:

name ‘a’ is not defined(變量沒有被定義,沒有被賦值)

注:當要使用某個變量的時候要確定它已經被定義和賦值

Can't convert 'int' object to str implicitly(數據類型不一致)

數據類型:

數據類型分為:整型和浮點型

整形:int? ? 例如? ?a=10

浮點數:float? ? 例如? ?a=10.0

可直接進行加減乘除,例如:print(a+20)

布爾值:bool? ?boolean? ? ? ?True和False首字母必須大寫

字符串:str? ? ?成對的單引號、雙引號、三引號都是字符串

s=1是整形? ?str(s)則強制轉化為字符串類型

type(數據)函數是查看數據類型的,例如? ?a=“1”? ? print(type(a))

len(數據)函數是用來統計數據的長度,例如s=‘hello!’? ?print(len(s))

字符串里的元素:單個字母、數字、漢字、單個符號都稱之為元素。

例如:s=‘hello!’? ? 里面有六個元素

字符串取值:字符串名[索引值]? ? 例如:s=‘hello!’? ?字符串s的第5個元素就是“!”,print(s[5])和print(s[-1])打印出來就是‘!’

索引:python索引正序是從0開始標記的(例如:0,1,2,3,4,5),返序是從-1開始的(例如:-1,-2,-3,-4,-5)

字符串取多個值:切片? ?字符串名[索引頭:索引尾:步長]? ? 步長默認為1? 例如:print(s[1:5:1])? ?1 2 3 4 5取頭不取尾即輸出為‘ello’? ?print(s[1:5:2])? ?1 3 5 即輸出為‘el’

print(s[:])這個是從正無窮取到負無窮

將s=hello!輸出為倒序,即print(s[-1:-7:-1])和print(s[::-1])

字符串的分割:字符串.split()? ? 列表里的子元素都是字符串類型? ? ??返回的則是一個列表類型的數據

指定的切割符? 例如 print(s.split('l'))? 則輸出['he','','o!']

指定切割次數? 例如? print(s.sprint('l',1))? l切割1次輸出為[helo!]? ?

print(s.sprint('l',2)) l被切割2次輸出為[heo!]

字符串的替換:? 字符串.replace(指定替換值,新值)

例如:s='hello!'? ? ?new=s.replace('l','@')? ? ? print(new)則輸出he@@o!

字符串去除指定字符:? ?字符串.strip(指定字符)? ?只能去掉頭和尾的指定字符

print(s.strip()) 則默認去掉空格? ?

例如:s='hello!'? ? print(s.strip(‘h’))則輸出ello

字符串拼接:? 用+號拼接? ?要保證 + 號左右兩邊的變量值類型要一致

例如:a=‘張三’? b=‘你好’? print(a+b) 則輸出 張三你好

字符串格式化輸出:? ? % format??

格式化輸出1:format 用{}來占坑

例如:name='張三'? ?age=18? ?print('今年{}{}么?'.format(name,age)) 則輸出為 今年張三18么?

name='張三'? ?age=18? ?print('今年{1}{0}么?'.format(name,age)) 則輸出為 今年18張三么?

格式化輸出2:用%來占坑? ?%s字符串? %d數字? ?%f浮點數

例如:name='張三'? ?age=18? ?print('今年{%s}{%d}么?'%(name,age)) 則輸出為 今年張三18么?

%s可以填任何數據

%d只能填數字? 整型? ?浮點數

%f可以填數字

%d保留整數部分

name='張三'? ?score=99.99? ?print('{%s}考了{%d}分'%(name,score)) 則輸出為 張三考了99分

%f自動補小數點后6位

name='張三'? ?score=99.99? ?print('{%s}考了{%f}分'%(name,score)) 則輸出為 張三考了99.9900分

.幾f則小數點后保留幾位,例.3f

name='張三'? ?score=99.99? ?print('{%s}考了{%.3f}分'%(name,score)) 則輸出為 張三考了99.990分

?列表 list??符號[ ]

a=[ ]? ? 可以存在空列表,列表里面可以包含任何類型的數據,列表里面的元素根據逗號進行分隔

例如:a=[1,0.02,'hello',[1,2,3],True] 列表a一共有5個元素。? ??

如果要存儲的數據是同一個類型的建議用列表

往列表里增加數據:append? ? 添加在末尾,只能添加一個數據? ,可以添加任何類型數據

例如:a[1,2,3]? ? a.append('4')? ? print(a)輸出為[1,2,3,4]

insert? 插入數據? ?要根據索引指定位置插入

例如:a[1,2,3]? ? a.insert('3')? ? print(a)輸出為[1,2,3,4]

刪除? ?pop()根據索引刪除某個元素,什么都不填默認刪除最后一個元素,? ??

例如:a=[1,2,3,4]? ? ?a.pop(2)? ? print(a)輸出為[1,2,4]

a=[1,2,3,4]? ? a.pop()? ? print(a)輸出為[1,2,3]

remove()指定刪除某個值

例如:a[‘張三’,‘李四’,‘王五’]? ? ?a.remove(‘張三’)? ? print(a)輸出為['李四',‘王五’]

res=a.pop()? ? 會返回被刪除的那個元素? ? ? 函數return關鍵字

a=['張三','李四','王五']? ? ? ?b=a.pop(1)? ? ? print(b)? ?則輸出為[‘張三’,[‘王五’]

修改? ? ?a[索引值]=新值

例如:a=['張三','李四','王五']? ? ?a[2]='小明'? ? print(a)輸出為[‘張三’,'李四','小明']

元組tuple? ?符號()? ?可以存在空元組 例如a=()

元組里面可以包含任何類型的數據

元組里面的元素根據逗號來進行分隔

獲取元組里面的單個值:? 元組[索引值]? ? 例如:a=('張三','李四','王五')? ? print(a[2])輸出為王五

元組一般用來操作數據庫的時候會存放條件,元組不支持任何修改

字典 dict? ? 符號{ }? ?大括號,花括號? ?輸出無順序? ?字典里的key必須是唯一的

可以存在空字典a={}

字典里面數據存儲方式:key:value

字典里面的value可以包含任何類型的數據

字典里面的元素? 根據逗號來進行分隔

例如:a={'name':'張三','age':'8歲','class':'3年級'}

字典取值:? ? 字典[key]

例如:print(a['name'])? 輸出為張三

刪除:? ?pop[key]

例如:a.pop('name')? ? print(a)輸出為'age':'8歲','class':'3年級'

b=a.pop('name')? ? print(b)輸出為'張三'

新增:? a[新key]=value

例如:a={'name':'張三','age':'8歲','class':'3年級'}? ?a['體重']='65kg'

print(a)? 輸出為{'name': '張三', 'age': '8歲', 'class': '三年級', '體重': '65kg'}

修改: a[已存在的key]=新value

例如:a={'name':'張三','age':'8歲','class':'3年級'}? ?a['class']='四年級'

print(a)? 輸出為{'name': '張三', 'age': '8歲', 'class': '四年級'}

運算符:5大類

算數運算符:+? -? ?*? ? %

模運算/取余運算:? ? ? 一般用來判斷某個數是奇數還是偶數

例:a=4? ?print(a%2)? 若輸出為0則是偶數,反之是奇數

賦值運算符:? ?=? ? ?+=? ? ?-=

把左邊的值賦值給右邊就叫賦值運算,例如a=5

若a=5? ?a+=5? ?則print(a)輸出為10? ? 相當于a=a+5

若a=5? ? a-=2? ?則print(a)輸出為3? ? ? 相當于a=a-2

比較運算符:>? ?>=? ? <? ? ?<=? ? !=? ? ==? 6種運算符

若a=10? ?b=5? ? ?print(a>b)? ?則輸出True

邏輯運算符: and? ?or? ? ?拓展:not

and的左右兩邊結果都為真才為真,只要有一個為假就為假

or的左右兩邊結果都為假才為假,只要有一個為真就為真

邏輯運算符返回的值也是布爾值????

成員運算符: in? ? ?not in

返回值也是布爾值

例如:s=‘hello’? ?print(‘o’? in? ?s) 則輸出為True

例如:d=[1,2,3]? ?print(‘1’? in? ?d) 則輸出為True

例如:t={'age':'30','name','張三']? ?print(‘age’? in? ?t) 則輸出為True? ? ? 字典的判斷主要是key

控制語句:分支分流

循環語句? for? while

判斷語句? ?if? ?elif? ? else

當if后面的語句滿足條件,運算結果是True ,那么就會執行他的子語句

例如:

age = 20

if? age>18

? ? ? print(“恭喜你,成年了”)

則輸出? ?恭喜你,成年了

if條件語句(比較/邏輯/成員運算? 均可)??

用字符串、元組、列表、字典去控制? ?空數據 ==False? 非空數據==True

例如:? a=[]? ?if? a:print(‘你好’)則不會執行,無輸出

若:?a=[1]? ?if? a:print(‘你好’)則輸出為? 你好

直接用布爾值去控制

例如:if? True:? ?print(‘你好’)? 則輸出為? ? 你好?????

if? ?條件語句? ? ? ? ? ?一個條件語句里面只能有一個if和一個eles? ? ?eles后面不能添加條件語句

? ? ?子語句

eles:

? ? ?子語句

例如:age=20

? ? ? ? ? if? ? ?age>=18:

? ? ? ? ? print('成年')

? ? ? ? ? else:

? ? ? ? ? print(‘未成年’)

if? ?條件語句? ? ? ? ? ?if? ?elif可以加條件語句? ? ?else后面不能添加條件語句

? ? ?子語句

elif? 條件語句

? ? ?子語句

else:

? ? ?子語句

例如:age=20

? ? ? ? ? if? ? ?age>=18:

? ? ? ? ? print('成年')

? ? ? ? ? elif? ?0<age<18:

? ? ? ? ? print('未成年')

? ? ? ? ? else:

? ? ? ? ? print(‘您輸入的年齡有誤’)

Random隨機數

例如:從1-9生成隨機數,然后輸入一個數字跟這個隨機數比較,若大于,則打印bigger,若小于則輸出less

import random

a=random.randint(1,9)

b=int(input('請輸入數字'))

if a

print('bigger')

elif a>b:

print('less')

循環? ?for? ? while

for循環:

for? item? in? ?某個數據類型:(數據類型包含:字符串、列表、元組、字典、集合)

for循環的循環次數由數據的元素個數決定

例如:

a=[1,2,3,4,5]

for? b? in? a:? ? ? for循環遍歷a里面的元素? ? 然后賦值給b

? ? ? print(b)

輸出為:

1

2

3

4

5

如何變量a是字典的話的,則遍歷的是key,返回的也是key

d={‘name’:‘小明’,‘age’:‘20’}

print(d.values())獲取字典里面的所有values值

print(d.keys())獲取字典里面的所有key值

for? item? in? d.values():

? ? ? print(item)遍歷的是字典d里面的所有value值


range函數? 生成整數序列

range(m,n,k)? m頭,默認為0? ?n尾? ? k步長,默認為1,取頭不取尾

例如:a=range(1,5,1)? ?print(list(a))輸出為1,2,3,4

a=range(5)? ?print(list(a))輸出為0,1,2,3,4

while? ?控制循環

while? 條件表達式

? ? ? ? ?代碼塊

首先判斷while后面的條件表達式是否成立,如果是True,那就執行代碼塊。執行完畢后繼續判斷

while后面的條件表達式,直到false為止。為防止代碼進入死循環,需加一個變量來控制次數

例如:a=1

? ? ? ? ? while? ?a<=10:

? ? ? ? ? ? ? ? ? ? ?a=a+1

循環10次

while 與 if 語句搭配使用? break? continue

使用函數可提高代碼的復用性例如:

def Total(b):

a=0

? ? sum=0

? ? while a

a+=1

? ? ? ? sum=a+sum

print(sum)

Total(b=5)

Total(b=10)

動態參數/·不定長參數? ?*args? ?arguments

在函數內部體現為元組

def? make_sandwich(*args):

? ? ? ?print(args)

make_sandwich(‘生菜’、‘雞蛋’、‘培根’、‘牛肉’)

關鍵字參數 key-value? ? **kwargs? ? key? ?word? ?必須加**

在函數內部體現為字典

def? ? kw_function(**kwargs):

? ? ? ? ?print(kwargs)

kw_function(x=1,y=2)

變量作用域、

全局變量? ?和局部變量

1、作用范圍不一樣? ? 全局? 在模塊里面都能調用? ? 函數的局部變量只能用于函數內

2、當全局和局部變量同名且同時存在的時候? ?函數優先調用局部變量

3、當局部變量沒有? ?就優先用全局的

4、global聲明一個全局變量

a=1 全局變量

def? ?add(b)

? ? ? ?a=5? ? 局部變量

? ? ? ?print(a+b)

add(10)

輸出結果為15

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容