引子
Python是一種面向?qū)ο蟮木幊陶Z(yǔ)言妙啃,靠縮進(jìn)來(lái)區(qū)分語(yǔ)句乍赫;
自動(dòng)識(shí)別數(shù)據(jù)類(lèi)型(無(wú)需定義數(shù)據(jù)類(lèi)型)匆篓;
字符串中有單引號(hào)時(shí)暂吉,要用雙引號(hào)括起來(lái):eg:print "let's go"
版本:pyhon 3.4.3 shell /pycharm community 5.0.4
本篇內(nèi)容將python知識(shí)點(diǎn)分為三個(gè)部分:
一胖秒、python的數(shù)據(jù)結(jié)構(gòu)
二、python的程序結(jié)構(gòu)
三慕的、Python函數(shù)
以下是這三個(gè)部分的內(nèi)容細(xì)化:
一阎肝、python的數(shù)據(jù)結(jié)構(gòu)
python基礎(chǔ)知識(shí)
數(shù)據(jù)結(jié)構(gòu):常量、變量肮街、元組(列表)风题、字典
數(shù)據(jù)類(lèi)型:整數(shù)--int、浮點(diǎn)數(shù)--float嫉父、字符--str
算法:分支沛硅、循環(huán)
輸入輸出函數(shù)
1.輸出函數(shù)
print (變量名,變量名...)
eg1:
a=1
b=2
print (a,b)
eg2:
a=1;b=2;c=3
print(("d%,f%,%s")%(a,b,c))
2.類(lèi)型查看函數(shù)
eg:
a=1
print(type(a))
3.輸入函數(shù)
變量名=input("提示信息")? #括號(hào)內(nèi)可不加內(nèi)容
eg1:
a=input('please input a value')
print(a)
eg2:
b=raw_input('please input a value:')? ? ?# raw_input()是默認(rèn)輸入數(shù)據(jù)為字符串類(lèi)型绕辖,所以輸入數(shù)據(jù)不加單引號(hào)也能以字符串類(lèi)型數(shù)據(jù)輸出摇肌。PS:raw_input在python3.4.3中需要調(diào)用才能實(shí)現(xiàn)功能。
print(b)? ? ?#如b=2仪际,輸出結(jié)果為'2'
元組围小、列表
s=(1,2.5,"much")? ? #元組tuple,里面的值不可改變(不能刪树碱,增加肯适,修改)
eg(如圖-元組里的元素不可刪除):
s=[1,2.5,"much"]? ? #列表list,list類(lèi)型的元素可以改變(可刪,增加赴恨,修改)
eg:
s=[1,2,3,4,5,6,7,8,9]
print(s[1:7:2])? ? #其中1為下限(開(kāi)始打诱钊ⅰ)伴栓,7為上限(不打勇琢),2為步長(zhǎng)(步長(zhǎng)為1可不寫(xiě)钳垮,eg print(s[1:7])? 結(jié)果:[2,3,4,5,6])
執(zhí)行結(jié)果:
[2,4,6]
eg:
pint(s[-2]) ? ?#列表從右往左第三個(gè)元素即:[7]
※ 操作方法:
1.逆序 s.reverse()
eg(格式):
s=[1,2,3,4,5,6,7,8,9]
print(s)
s.reverse()
print(s)
執(zhí)行結(jié)果:
[1,2,3,4,5,6,7,8,9]
[9,8,7,6,5,4,3,2,1]
2.排序 s.sort() ? ?#改變?cè)瓉?lái)列表元素的值惑淳,按大小排序
3.排序 s.sorted(s) ? ?#不改變?cè)瓉?lái)列表元素的值。
4.插入 s.insert(n,m)
eg:
s.insert(1,20) ? ?#在元素1后插入元素20
如圖:
5.追加s.append()
eg(如圖):
#元素90放在列表最后
6.max(s)饺窿、min(s)歧焦、len(s)
eg(如圖):
7.刪除列表元素del s[n]
eg(如圖):
字典:應(yīng)用于成對(duì)出現(xiàn)的值(如用戶名:xxx ? 密碼:xxx),大括號(hào){}、輸出結(jié)果無(wú)大小排序
eg: s={'a':10,'b':20,'c':15} ? ?#其中a,b,c為鍵key绢馍,10向瓷、20、15為值value舰涌,a:10猖任、b:20、c:15為鍵值對(duì)
eg(如圖):
PS:從執(zhí)行結(jié)果可以看出瓷耙,s字典輸出無(wú)序朱躺,另外pint(s['a'])打印的是鍵值
1.print(s.keys()) ? ?#取出所有的鍵
eg(如圖):
2.print(s.values()) ? ?#取出所有的值
3.print(s.items()) ? ?#取出所有的鍵值對(duì)
4.s.clear() ? ?#清空字典
5.del s['n'] ? ?#刪除鍵值
二、python的程序結(jié)構(gòu)
算法:1.if分支 ? ?2.循環(huán)(while循環(huán)/for循環(huán))
1.if分支:1.1 if 分支 ? ?1.2 if else 分支 ? ?1.3 if elif else 分支
1.1 if 分支 ? ?#一種條件搁痛,一種結(jié)果
語(yǔ)法如下:
if 條件:
? ? 語(yǔ)句體
1.2 if else 分支 ? ?#一種條件长搀,兩種結(jié)果
語(yǔ)法如下:
if 條件:
? ? 語(yǔ)句體
else:
? ? ?語(yǔ)句體
1.3 if elif else 分支 ? ?#多種條件,多種結(jié)果
語(yǔ)法如下:
if 條件:
? ? 語(yǔ)句體
elif:
? ? 語(yǔ)句體
else:
? ? 語(yǔ)句體
2.循環(huán):2.1 while循環(huán) ? ?2.2 for循環(huán)
2.1 while循環(huán)
while循環(huán)四要素:循環(huán)變量鸡典、循環(huán)條件源请、循環(huán)體、循環(huán)變量發(fā)生變化
語(yǔ)法如下:
循環(huán)變量
while 條件:
? ? 循環(huán)體 ? ? ? ?#注意最重要的是先定義循環(huán)體
? ? 循環(huán)變量發(fā)生變化
eg:
i=0
while i<5:
? ? print(i)
? ? i=i+1
2.2 for循環(huán)
? 無(wú)需定義變量轿钠,也無(wú)需寫(xiě)循環(huán)變量變化
? 執(zhí)行循環(huán)的次數(shù)由序列中元素多少?zèng)Q定
for 變量 in 序列:
? ? ? ? ? ?循環(huán)體
eg(如圖):
1)range(n) ? ?#產(chǎn)生一個(gè)0到n-1元素的序列
eg(如圖):
2)range(m,n) ? ?#產(chǎn)生一個(gè)m到n-1元素的序列
eg(如圖):
3)range(m,n,i) ? ?#產(chǎn)生一個(gè)m到n-1元素巢钓,且步長(zhǎng)為i的序列
eg(如圖):
4)continue ? ?#停止當(dāng)前循環(huán),執(zhí)行下一次循環(huán)
eg(如圖):
# i=5疗垛,停止執(zhí)行當(dāng)前語(yǔ)句症汹,繼續(xù)又從 i+1開(kāi)始執(zhí)行(看以上python語(yǔ)句執(zhí)行結(jié)果)
5)break ? ?#跳出整個(gè)循環(huán),不再執(zhí)行循環(huán)
# i=5時(shí)贷腕,跳出整個(gè)循環(huán)背镇,后面元素不再顯示荆针。
三肖卧、python函數(shù):
定義個(gè)一個(gè)函數(shù)准验,為實(shí)現(xiàn)某種功能 / 若干條語(yǔ)句組成一段代碼集合嚣伐,代碼幫我們實(shí)現(xiàn)一段程序
1.定義:
def 函數(shù)名(參數(shù)1浪汪,參數(shù)2): ? ?#----參數(shù)可有可無(wú)
? ? ? ? ? ? ? ? ? ? ?語(yǔ)句體
? ? ? ? ? ? ? ? ? ? ? return 變量 ? ? ?#----返回值
eg:
def add(a,b):
? ? c=a+b
? ? retrun c
2.調(diào)用(調(diào)用兄猩、傳參洽瞬、接收返回值)
變量=函數(shù)名(參數(shù)1秩仆,參數(shù)2) ? ?#----變量瀑梗、參數(shù)可有可無(wú)
eg:c=add(a,b)
傳參:
1)直接傳參 ?c=add(1,2)
2)從鍵盤(pán)中輸入數(shù)據(jù)傳參
eg:
PS:用input語(yǔ)句輸出數(shù)字時(shí)烹笔,要先定義數(shù)據(jù)類(lèi)型(如上例中的int類(lèi)型),否則默認(rèn)字符串類(lèi)型
3)從函數(shù)內(nèi)部接收數(shù)據(jù)抛丽,調(diào)用時(shí)不用傳參
eg:
PS:函數(shù)中沒(méi)有傳參和返回值谤职,調(diào)用時(shí)就無(wú)需傳參和接收返回值
實(shí)例1:設(shè)計(jì)一個(gè)計(jì)算器,輸入2個(gè)數(shù)亿鲜,自動(dòng)實(shí)現(xiàn)這兩個(gè)數(shù)的加減乘除
??定義多個(gè)函數(shù)實(shí)現(xiàn)加減乘除運(yùn)算:
??另一種表達(dá)語(yǔ)句(將算法定義在一種方法里):
實(shí)例2:根據(jù)用戶的輸入的計(jì)算符號(hào)計(jì)算結(jié)果
PS:因?yàn)閕nput默認(rèn)的輸入數(shù)據(jù)是字符串類(lèi)型允蜈,所以執(zhí)行please input the string:語(yǔ)句輸入加+ 、減-、乘*饶套、除/ 運(yùn)算時(shí)漩蟆,無(wú)需加單引號(hào)括起來(lái)(eg: '+' ? '-' ?'*' ?'/' ),而是直接輸入運(yùn)算符(+ - * /)
另一種方法就是分別定義加減乘除的方法,再在if語(yǔ)句中調(diào)用