python在我個(gè)人的理解是相對于其它是一門比較容易的語言,加上最近的人工智能特別火而Python是主要的語言基礎(chǔ),相信有很多前端后端的程序員們都在蠢蠢欲動(dòng),而對于有些本身就有java語言基礎(chǔ)的人來說可能會(huì)在基礎(chǔ)上浪費(fèi)一大半時(shí)間,所以我在以我本人學(xué)習(xí)經(jīng)驗(yàn)的基礎(chǔ)上幫助大家以更少的時(shí)間搞懂python基礎(chǔ),等下會(huì)附上我項(xiàng)目地址,python在我的理解是基于java的思想變換寫法,所以再有java基礎(chǔ)的前提下再來看我這篇文章相信你會(huì)事 倍功半。
1.首先來講一下paython基本數(shù)據(jù)類型,它與java不同之處在于python定義類型不需要指定(例如String,int之類的)例如java中我們需要一個(gè)String類型往往會(huì)這樣寫String a,而在python中直接可以寫成a,你也可以認(rèn)為a可以代表任何數(shù)據(jù)基本類型在python中String類型可以寫成a="b",也可以寫成a='b',雙引號和單引號是一樣的,在打印的時(shí)候使用這個(gè)就可以print('hello word'),python中空格是有語法形式的,所以我們寫代碼的時(shí)候一定要頂格從頭寫,而換行可以寫成print('''hello word
hello word
hello word'''),斜杠\n也可以達(dá)到換行的目的
下面講一下format,這個(gè)記住就可以了,我舉個(gè)了例子,例如
age=3
name="Toms"
print("{0} was {1} years old".format(name, age))這句話里的{0}和?{1}分別代表的是name和age,fromat是一種格式化字符串的函數(shù),0和1分別代表format后面參數(shù)的位置
2.python中的集合
2.1 ?list用法
? ? ? ? ? ? ??number_list=[1,2,3,4,5,6,7,8],number_list里面可以寫int 也可以寫String混合使用,用法可以直接輸出控制臺print("list"+str(number_list))
? ? ? ? ? ? ?你要想刪除一個(gè)list內(nèi)容的話直接編寫del number_list[0],del表示刪除的意思
? ? ? ? ? ? ?list的截取:str(mix_list[1:],這句代碼的意思是,在截取1后面的所有元素,下標(biāo)從0開始,0表示第一位元素,在python中也可以反截取,例如我可以寫成mix_list[:-1], ? ? ? ? ? ? ? 代 ? ? ?表的是從list最后一個(gè)開始截取,注意這時(shí)候下標(biāo)從1開始。
? ? ?2.2?tuple用法 ??
? ? ? ? ? ? 理解tuple:一個(gè)tuple可以寫成mix_tuple=(1,2,['a','b']),tuble的值不能被改變,但是如果是里面嵌套了list之類的list是可以更改的,你要想知道tuple的長度很簡單,跟list ? ? ? ? ? ? ?一 ? ?樣,例如我想獲取mix_tuple就可以寫成len(mix_tuple),那么tuple的值可以刪除嗎,這個(gè)前面已經(jīng)說過了,tuple里的值是不能改變的,所以要想刪除就直接刪 ? ? ? ? ? ? ? ? ? ? 除整個(gè) ? ?tuple,可以寫成del mix_tuple,這樣我們就刪除了這個(gè)tuple
? ? ?2.3 詞典
? ? ? ? ? ? 理解詞典:提到詞典,這里你可以想象成java里的map,它跟map大同小異,只是寫法不一樣,例如我們創(chuàng)建一個(gè)詞典mix_dict={'Tom':'boy',11:25,'boy':88},它是用大括 ? ? ? ? ? ? ?號表示的,提示(稍微注意一下括號是小括號,大括號還是中括號用以區(qū)分list,tuple,詞典),mix_dict里面的類型也可以是String,int混合使用,至于取值是根據(jù)鍵去取的大 ? ? ? ? ? ? ?同小異,例如我們想取Tom里的值就可以寫成mix_dict['Tom']),注意如果值是int類型的要轉(zhuǎn)化成String,比如我們要取里面11的值25,這時(shí)候你就要寫成str(11),你 ? ? ? ? ? ? ? ? ? ? ?要 去出全部就可以寫成str(mix_dict)
? ? ? ? ? ? 你要想刪除一個(gè)詞典里的元素的話就可以寫成del mix_dict['Tom'],刪除整個(gè)就寫成del mix_dict['mix_dict'],如果你想要清除這個(gè)詞典的內(nèi)容而不想把整個(gè)詞典 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 都刪除了的話你就可以寫成mix_dict.clear()
? ? ? ? ? ? 詞典添加和修改都是一樣的mix_dict['heath']='888',如果詞典里沒有這個(gè)元素就可以添加,否則就會(huì)修改,詞典里的鍵是唯一的,如果你一個(gè)詞典里有兩個(gè)相同的鍵那么 ? ? ? ? ? ? 你就會(huì)被最后一個(gè)鍵替代。相當(dāng)于你寫了兩個(gè)最后只有最后一個(gè)有用(是不是很通俗易懂)
?3.函數(shù)
? ? ? ?3.1 函數(shù)定義,我舉個(gè)例子相比一大串的定義更加容易理解,例如有這樣的一個(gè)函數(shù)
d=90
def sum(a,b):
c=a+b
d=60
return c
str(sum(1, 2)),sum是一個(gè)方法a和b都是參數(shù),在方法冒號下面的就是方法的內(nèi)容,sum(1, 2)是對方法的調(diào)用,str(sum(1, 2))是轉(zhuǎn)化String,結(jié)合java方法定義,很容 ? ? ? ? ? ? ?易理解,python很靈活,所以在我的理解之下是對java的一 ?個(gè)簡化,但是思想大多類似,python是完全支持面向?qū)ο缶幊蹋幸粋€(gè)需要注意的地方,例如上面的一個(gè)例 ? ? ? ? ? ? ? 子,這時(shí)候d是一個(gè)全局變量,我們在方法里將d的局部變量改變成60,這時(shí)候外面調(diào)用d時(shí),d是不會(huì)被改變的還是等于90,可以這樣總結(jié)為全局變量不能被方法里的局 ? ? ? ? ? ? 部變量改變
4.控制流 ? 下面看這樣一段代碼
number=30
guess=int(input('請輸入數(shù)字'))
if guess==number:
print('輸入正確,答案為'+str(number))
else :
print('輸入錯(cuò)誤請重新輸入')
for i in range(1,30):
print(str(i))
input就是我們能在控制臺手動(dòng)打出字符,外面int就是指int;類型,下面的這些if else格式就是這樣的沒有括號,這里看下就明白就不多講,至于for循環(huán)我解釋一下,range代表的是1,30的范圍之內(nèi),這里還有一種寫法
list=[1,3,5,6,0,19]
for i in list:
print(i)
這種寫法指的是從list里的每一個(gè)元素按照順序逐漸循環(huán),相對java是不是很簡便,不要愛上它
,這里講到循環(huán)我就把循環(huán)都講一下,還有一種是While,其實(shí)也大同小異。
number=50
guess_flag=False
while guess_flag:
guess=int(input("請輸入一個(gè)值"))
if guess==number:
print('恭喜您猜對了,獲得了女朋友一枚,答案為'+str(number))
guess_flag=True
break
elif guess
print('很遺憾,您猜錯(cuò)了,請?jiān)偻唿c(diǎn)試試沒有任何獎(jiǎng)品,請重新輸入')
pass
print('請繼續(xù)')
elif guess>number:
print('很遺憾,您猜錯(cuò)了,請?jiān)偻忘c(diǎn)試試沒有任何獎(jiǎng)品,請重新輸入')
pass
print('請繼續(xù)')
else :
print('很遺憾,您猜錯(cuò)了,沒有任何獎(jiǎng)品,請重新輸入')
pass
print('請繼續(xù)')
格式就是這樣的,代碼貼出來相信你也看懂了,如果你想要寫一個(gè)死循環(huán)就可以直接寫成while True,講條件改成True就可以了,關(guān)于循環(huán)還有一個(gè)需要注意的,它比java多一個(gè),分別是continue,break,還有一個(gè)pass前面兩個(gè)我就不多講了,要是不明白就去復(fù)習(xí)一下java,至于pass其實(shí)這個(gè)的意思是跳過這一行繼續(xù)執(zhí)行下一行的代碼,它與continue的不同之處是continue是跳出下面所有的內(nèi)容執(zhí)行下一個(gè)循環(huán)
下面我來講一下文件的讀寫,看下面一段代碼
#寫入文件
str_book='''I love learning python
because python is fun
and also easy to use'''
f=open('mypython.txt','w')
f.write(str_book)
f.close()
這段代碼含義是將str_book這個(gè)字符串寫入文件mypython.txt中,open里的w表示寫入,r表示讀取,如果是讀取的時(shí)候你也可以不寫r默認(rèn)就是讀取,open里的第一參數(shù)還有一層意思,就是你可以指定文件路徑前面可以加路徑,如果不加就是默認(rèn)的地址,在與你同一項(xiàng)目的py文件同一目錄下,相對于java是不是很簡單
#讀入文件
f=open('mypython.txt','r')
while True:
line=f.readline()
if len(line)==0:
break
print(line)
f.close()
這里是一個(gè)讀取文件的操作,首先不管是讀取還是寫入,都要open('mypython.txt','w')這段代碼,readline指的是讀取文件里的每一個(gè)元素,其它的都一樣就不多講了。
5.python的異常處理
try:
except OSError as err:
print("OSError:{0}".format(err))
except ValueError:
print("出現(xiàn)異常")
except代表的是哪一類異常,ValueError代表的是值異常,OSError 代表的是文件異常,例如文件不存在,至于其它異常可以自行百度,我這里就舉個(gè)例子,到這里那么還有的同學(xué)就會(huì)問了,如果捕獲不到的異常怎么處理呢,程序不就會(huì)崩潰了,這里我提供兩種方法用來捕獲所有異常
import traceback
try:
print(8/0)
except:
print("出現(xiàn)異常")
try:
print(8/0)
except Exception as ex:
print("出現(xiàn)異常"+str(ex))
6. python面向?qū)ο缶幊蹋匆韵麓a
class Student:
def __init__(self,name,grade):
self.name=name
self.grade=grade
def myName(self):
print(str(self.name)+str(self.grade))
def myGrade(self,monment):
self.grade=self.grade+monment
stu=Student('張三',98)
stu.myName()
stu.myGrade(10)
stu.myName()
這里我解釋一下__init__,這個(gè)是一個(gè)固定的寫法,指的是初始化函數(shù),而self相當(dāng)于我們java的this,myName,myGrade都是方法,還有一個(gè)值得注意的是,java里都是new一個(gè)Student,我們這里直接就可以用等號就可以創(chuàng)建一個(gè)Student對象了,其它都是一樣的
7.裝飾器
python裝飾器,參數(shù)可以是函數(shù),是python的一個(gè)特性,這與java不同,仔細(xì)看以下代碼
def myCake():
return "a cake"
def addCake(myCakes):
def myStyle():
return myCakes()+"style"
return myStyle()
asd=addCake(myCake)
print(myCake())
print(asd)
將myCake的返回值作為參數(shù)傳入addCake方法里,在myStyle方法里添加了一個(gè)Style字符串作為返回值與myCake的返回值相加,最后得到addCake的返回值在控制臺打印出來
python里還有一個(gè)獨(dú)特的地方,那就是可以用@指定方法作為參數(shù)加入,直接省去了asd=addCake(myCake)這一段代碼,例如
def addCake(myCakes):
def myStyle():
return myCakes()+"style"
return myStyle()
@addCake
def myCake():
return "a cake"
print(myCake)
7.圖形界面介紹
圖形界面指的是一個(gè)彈出框,讓電腦彈出一個(gè)對話框,在最上面加入這幾行代碼用以導(dǎo)入類似我們java包之類的
from tkinter import *
import tkinter.simpledialog as dl
import tkinter.messagebox as wb
注意:as后面的只是簡稱可有可無,為了后面方便引用可以直接使用dl,wb
最后看具體實(shí)現(xiàn)
root=Tk()
w=Label(root,text='label Title')
#目的可以讓標(biāo)簽自適應(yīng)大小
w.pack()
wb.showinfo('welcome','welcome Message')
Label第一個(gè)參數(shù)是Tk對象,第二個(gè)是標(biāo)題,showinfo是顯示對話框,第一個(gè)是標(biāo)題,第二個(gè)是內(nèi)容,基于這些我們就可以寫一個(gè)小游戲
root=Tk()
w=Label(root)
#目的可以讓標(biāo)簽自適應(yīng)大小
w.pack()
wb.showinfo('welcome','welcome Message')
#利用圖形界面制作小游戲
while True:
guess=dl.askinteger('競猜游戲', '請輸入一個(gè)數(shù)字')
if guess==number:
wb.showinfo('I love you','恭喜您才對了,答案為'+str(number))
break
elif guess
wb.showinfo('錯(cuò)誤提示','很遺憾,您猜錯(cuò)了,請?jiān)偻唿c(diǎn)試試沒有任何獎(jiǎng)品,請重新輸入')
pass
print('請繼續(xù)')
elif guess>number:
wb.showinfo('錯(cuò)誤提示','很遺憾,您猜錯(cuò)了,請?jiān)偻忘c(diǎn)試試沒有任何獎(jiǎng)品,請重新輸入')
pass
print('請繼續(xù)')
else :
wb.showinfo('錯(cuò)誤提示','您猜錯(cuò)了,沒有任何獎(jiǎng)品,請重新輸入')
pass
print('請繼續(xù)')
這就是一個(gè)數(shù)字游戲,當(dāng)你輸入高或者低都會(huì)提示你讓你重新輸入,直到你輸入正確為止。
好了,python的一些基礎(chǔ)就到此為止了,如有不對歡迎指正!
下載地址:http://download.csdn.net/download/qq_33407981/10149704