python之道 優雅 明確 簡單
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
編譯型語言與解釋型語言
編譯工具
交互式命令行IDE
1. 變量名的長度不受限制,但其中的字符必須是字母、數字、或者下划線(_),而不能使用空格、連字符、標點符號、引號或其他字符
2.變量名的第一個字符不能是數字,而必須是字母或下划線
3.Python區分大小寫
4.不能將Python關鍵字用作變量名
pycharm快捷鍵:
String( 字符串 ) 把一對字符放在 ' ' (單引號) / " " (雙引號) / ''' '''(三引號)中

python中定義變量的時候字符串都用用引號括起來,單引號和雙引號沒有區別,用啥都行,如果說這個字符串里面有單引號的話,那你外面就用雙引號,里面有雙引號的話,外面就用單引號,如果既有單又有雙,那么用三引號,三引號也可以多行注釋代碼,單行注釋,使用#,代碼如下:


Python數據類型:
數字 字符串
集合:無序,即無序索引相關信息
元組:有序,需要存索引相關信息,不可變
列表:有序,需要存索引相關信息,可變,需要處理數據的增刪改
字典:無序,需要存key與value映射的相關信息,可變,需處理數據的增刪改
通過下標訪問列表中的元素,下標從0開始計數,也就是說,比如說一個列表,有個5元素,那么它第一個元素下標就是0,第二個就是1,以此類推,字符串也有下標,和列表一樣 對列表的操作,分以下幾種增、刪、改、查
增:
刪:
改:
查:
列表操作,一些內置的方法:
切片,切片也就是另一種方式獲取列表的值,它可以獲取多個元素,可以理解為,從第幾個元素開始,到第幾個元素結束,獲取他們之間的值,格式是name:[1:10],比如說要獲取name的第一個元素到第五個元素,就可以用name[0:6],切片是不包含后面那個元素的值的,記住顧頭不顧尾;前面的下標如果是0的話,可以省略不寫,這樣寫,name[:6],切片后面還有可以寫一個參數,叫做步長,也就是隔多少個元素,取一次,默認可以不寫,也就是隔一個取一次,切片操作也可以對字符串使用,和列表的用法一樣,實例如下:
元組
元組其實和列表一樣,不一樣的是,元組的值不能改變,一旦創建,就不能再改變了,比如說,要存數據庫的連接信息,這個連接信息在程序運行中是不能被改變的,如果變了那數據庫連不上了,就程序就完犢子了,這樣的就可以使用元組了,元組呢,也提示別人,看到是元組的話,就說明這個值是不能被改變的,元組的定義方式是用(),小括號;元組只有兩個方法,那就是count和index
字典
上面說了,整形、浮點型、字符串、列表和元組,下面說個新的數據類型,字典,字典也是我們開發過程中最常用的一種數據類型;想一個問題,現在要存整個北京市的所有人的信息,每個人有姓名、年齡、性別、家庭住址、學歷等等,那要是用列表存的話,那就得定義N多個數組,然后存上每個人的信息,那累死人了。。。這時候又有一種新的數據類型出現了,那就是字典,dict,全稱是dictionary,它具有極快的查找速度;字典是一種key-value的數據類型,比如說要存每個人的信息,那么每個人的編號就是key,value就是每個人的信息,這樣的話,一個字典就能存所有人的信息了。字典的定義使用{},大括號,每個值用“,”隔開,key和value使用“:”分隔。
舉個列子,如果用列表存每個人的信息的話,需要用兩個列表,一個存人名,一個存信息:
給一個名字,如果要查他的對應信息,那就要先從names里面找到它的位置,然后再從infos中找到它的信息,如果這個列表越長,那么它的查詢速度越慢。
如果用字典實現的話,只需要一個名字和信息對應的一個表,這樣就很快的根據名字找到它對應的信息,無論這個表有多大,查找速度都不會變慢。
為什么dict查找速度這么快?因為dict的實現原理和查字典是一樣的。假設字典包含了1萬個漢字,我們要查某一個字,一個辦法是把字典從第一頁往后翻,直到找到我們想要的字為止,這種方法就是在list中查找元素的方法,list越大,查找越慢。
第二種方法是先在字典的索引表里(比如部首表)查這個字對應的頁碼,然后直接翻到該頁,找到這個字。無論找哪個字,這種查找速度都非常快,不會隨着字典大小的增加而變慢,這種就是字典的實現方式。
字典的特性:
字典是無序的,因為它沒有下標,用key來當索引,所以是無序的
字典的key必須是唯一的,因為它是通過key來進行索引的,所以key不能重復,天生就去重
字典的增刪改查:
增:
刪:
改:
查:
字典的內置方法:
循環字典:
數據運算
算數運算符
比較運算符
Python賦值運算符
邏輯運算符
身份運算符
模塊初識
模塊是導入別人已經寫好的python文件,里面已經有一些寫好的功能,可以直接拿來使用,使用import 關鍵字導入需要的模塊,導入模塊時,默認會在當前目錄下去尋找該文件,如果當前目錄下沒有的話,回去python的環境變量中找,如果找不到就報錯,下面有一些簡單的python標准模塊,os和sys模塊:
三元運算符
三元運算符就是在賦值變量的時候,可以直接給它加上判斷,然后賦值
當然三元運算符也可以用在列表和字典中,這么寫的話,就比較簡單了,不過如果搞不明白三元運算符的話,還是不用為好
流程控制 if else
while 循環
break 退出本次循環 continue 退出本次循環,繼續下一次循環
import datetime 通過import 導入 datetime today = datetime.datetime.today( ) today = str(today)
小游戲
猜數字的游戲,要求是這樣,產生一個隨機數字,1-100之間,接收用戶輸入,如果猜對了,游戲結束,猜大了,提示猜大了,小了提示猜小了。產生隨機數模塊使用random.randint(1,101),是一個標准包,導入使用即可,代碼如下:
格式化輸出
什么是格式化輸出呢,就是說把你的輸出都格式化成一個樣子的,比如說登錄的歡迎信息,都是welcome to login,Marry. 每個用戶登錄都是這樣歡迎,但是每個用戶的用戶名都是一樣的,你不能一個用戶就寫一行代碼吧,這就需要用到格式化輸出了,有三種方式,第一種是用“+”連接,直接把輸出的字符串和變量連接起來就可以了;第二種是用占位符,占位符有常用的有三種,%s、%d和%f,%s是后面的值是一個字符串,%d是后面的值必須是一個整數,%f后面是小數;第三種是使用{}和fromat方法,這三種呢,官方推薦是使用format方法,不推薦使用第一種,第一種用加號的,會在內存里面開辟多個內存空間,而后面兩種是只開辟一塊內存空間,使用方式如下:
%s(str) 字符串 %d(int)整數 %f(float)小數 0.2%f 保留2位小數 round(score,2) 保留小數后幾位 四舍五入