python學習筆記01

本篇為python基礎部分刺覆,包含練習題

基礎知識點:

1.python是解釋型語言,不需要編譯史煎,直接由解釋器解釋運行谦屑。
CPython
當我們從Python官方網(wǎng)站下載并安裝好Python 2.7后,我們就直接獲得了一個官方版本的解釋器:CPython篇梭。這個解釋器是用C語言開發(fā)的氢橙,所以叫CPython。在命令行下運行python就是啟動CPython解釋器恬偷。

CPython是使用最廣的Python解釋器悍手。教程的所有代碼也都在CPython下執(zhí)行。

IPython
IPython是基于CPython之上的一個交互式解釋器,也就是說坦康,IPython只是在交互方式上有所增強竣付,但是執(zhí)行Python代碼的功能和CPython是完全一樣的。好比很多國產(chǎn)瀏覽器雖然外觀不同涝焙,但內(nèi)核其實都是調用了IE卑笨。

CPython用>>>作為提示符,而IPython用In [序號]:作為提示符仑撞。

PyPy
PyPy是另一個Python解釋器赤兴,它的目標是執(zhí)行速度。PyPy采用JIT技術隧哮,對Python代碼進行動態(tài)編譯(注意不是解釋)桶良,所以可以顯著提高Python代碼的執(zhí)行速度。

絕大部分Python代碼都可以在PyPy下運行沮翔,但是PyPy和CPython有一些是不同的陨帆,這就導致相同的Python代碼在兩種解釋器下執(zhí)行可能會有不同的結果。如果你的代碼要放到PyPy下執(zhí)行采蚀,就需要了解PyPy和CPython的不同點疲牵。

Jython
Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節(jié)碼執(zhí)行榆鼠。

IronPython
IronPython和Jython類似纲爸,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的字節(jié)碼妆够。
2.python基本數(shù)據(jù)類型
標準數(shù)據(jù)類型
Python3 中有六個標準的數(shù)據(jù)類型:

Number(數(shù)字)
String(字符串)
List(列表)
Tuple(元組)
Sets(集合)
Dictionary(字典)
Python3 的六個標準數(shù)據(jù)類型中:

不可變數(shù)據(jù)(四個):Number(數(shù)字)识啦、String(字符串)、Tuple(元組)神妹、Sets(集合)颓哮;
可變數(shù)據(jù)(兩個):List(列表)、Dictionary(字典)鸵荠。
特殊類型:
None Ture False
3.python的流程控制語句:
條件語句:

age = int(input("請輸入你家狗狗的年齡: "))
print("")
if age < 0:
    print("你是在逗我吧!")
elif age == 1:
    print("相當于 14 歲的人冕茅。")
elif age == 2:
    print("相當于 22 歲的人。")
elif age > 2:
    human = 22 + (age -2)*5
    print("對應人類年齡: ", human)
else:
    ...

python中沒有switch語句蛹找。

while循環(huán):
Python中while語句的一般形式:

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")

for循環(huán):

sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    print("循環(huán)數(shù)據(jù) " + site)
else:
    print("沒有循環(huán)數(shù)據(jù)!")
print("完成循環(huán)!")

除此之外還有python內(nèi)置的range函數(shù)姨伤。
4.字典、列表和元組
這三個是python中最常用到的數(shù)據(jù)結構熄赡,字典和列表也是大部分編程語言中最常用到的數(shù)據(jù)結構。
字典
字典是另一種可變?nèi)萜髂P统菟埃铱纱鎯θ我忸愋蛯ο蟆?/p>

字典的每個鍵值(key=>value)對用冒號(:)分割彼硫,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

鍵必須是唯一的,但值則不必拧篮。

值可以取任何數(shù)據(jù)類型词渤,但鍵必須是不可變的,如字符串串绩,數(shù)字或元組缺虐。

一個簡單的字典實例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此創(chuàng)建字典:

dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }

訪問字典中的元素:
dict1['abc']
字典的常用api:


image.png

列表:
序列是Python中最基本的數(shù)據(jù)結構。序列中的每個元素都分配一個數(shù)字 - 它的位置礁凡,或索引高氮,第一個索引是0,第二個索引是1顷牌,依此類推剪芍。

Python有6個序列的內(nèi)置類型,但最常見的是列表和元組窟蓝。

序列都可以進行的操作包括索引罪裹,切片,加运挫,乘状共,檢查成員。

此外谁帕,Python已經(jīng)內(nèi)置確定序列的長度以及確定最大和最小的元素的方法峡继。

列表是最常用的Python數(shù)據(jù)類型,它可以作為一個方括號內(nèi)的逗號分隔值出現(xiàn)雇卷。

列表的數(shù)據(jù)項不需要具有相同的類型

創(chuàng)建一個列表鬓椭,只要把逗號分隔的不同的數(shù)據(jù)項使用方括號括起來即可。如下所示:

list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];

與字符串的索引一樣关划,列表索引從0開始小染。列表可以進行截取、組合等贮折。
常用api:


image.png

此外裤翩,列表中最強大的還有切片操作。
元組:
Python 的元組與列表類似调榄,不同之處在于元組的元素不能修改踊赠。

元組使用小括號,列表使用方括號每庆。

元組創(chuàng)建很簡單筐带,只需要在括號中添加元素,并使用逗號隔開即可缤灵。

如下實例:

tup1 = ('Google', 'Runoob', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d"; # 不需要括號也可以
type(tup3)

創(chuàng)建空元組

tup1 = ();
元組中只包含一個元素時伦籍,需要在元素后面添加逗號蓝晒,否則括號會被當作運算符使用:

tup1 = (50)
type(tup1)     # 不加逗號,類型為整型
<class 'int'>

tup1 = (50,)
type(tup1)     # 加上逗號帖鸦,類型為元組

元組與字符串類似芝薇,下標索引從0開始,可以進行截取作儿,組合等洛二。

訪問元組
元組可以使用下標索引來訪問元組中的值,如下實例:

tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )

print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])

練習:

登錄程序

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Created by master on  2018/5/15 14:10.
import os
import pickle


class Login(object):
    login_success = False
    MAX_LOGIN_TIMES = 3
    file_path = "locked.list"
    user_table = {"a": "1", "b": "2", "c": "3"}
    list_locked = {"a": 0, "b": 0, "c": 0}

    #寫文件
    def write_file(self):
        with open(self.file_path, "wb") as locked_users:
            pickle.dump(self.list_locked, locked_users)

    #讀文件
    def read_file(self):
        if os.path.exists(self.file_path):
            with open(self.file_path, "rb") as locked_users:
                return dict(pickle.load(locked_users))
        else:
            self.write_file()

    #判斷用戶是否被鎖定
    def is_locked(self, username):

        self.list_locked = self.read_file()

        return username in self.list_locked and self.list_locked[username] == self.MAX_LOGIN_TIMES
    #登錄
    def login(self, username, password):
        if not username or not password:
            print("用戶名或密碼不能為空攻锰!")
            return
        if username not in self.user_table:
            print("用戶名或密碼錯誤晾嘶,請重試!")
            return
        if self.is_locked(username):
            print("當前用戶已經(jīng)被鎖定口注!")
            return
        try_login_times = self.list_locked[username]

        if username in self.user_table and password == self.user_table.get(username):
            print("歡迎回來变擒,%s" % username)
            try_login_times = 0
            self.login_success = True
        else:
            print("用戶名或密碼錯誤,請重試寝志!還有%s次機會" % (self.MAX_LOGIN_TIMES - (try_login_times + 1)))
            try_login_times = try_login_times + 1
        self.list_locked[username] = try_login_times
        self.write_file()

# 程序入口
if __name__ == '__main__':
    login = Login()
    while not login.login_success:
        uname = input("請輸入用戶名:")
        pword = input("請輸入密碼:")
        login.login(uname, pword)

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末娇斑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子材部,更是在濱河造成了極大的恐慌毫缆,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乐导,死亡現(xiàn)場離奇詭異苦丁,居然都是意外死亡,警方通過查閱死者的電腦和手機物臂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門旺拉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棵磷,你說我怎么就攤上這事蛾狗。” “怎么了仪媒?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵沉桌,是天一觀的道長。 經(jīng)常有香客問我算吩,道長留凭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任偎巢,我火速辦了婚禮蔼夜,結果婚禮上,老公的妹妹穿的比我還像新娘压昼。我一直安慰自己求冷,他們只是感情好翠订,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著遵倦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪官撼。 梳的紋絲不亂的頭發(fā)上梧躺,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機與錄音傲绣,去河邊找鬼掠哥。 笑死,一個胖子當著我的面吹牛秃诵,可吹牛的內(nèi)容都是我干的续搀。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼菠净,長吁一口氣:“原來是場噩夢啊……” “哼禁舷!你這毒婦竟也來了?” 一聲冷哼從身側響起毅往,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤牵咙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后攀唯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洁桌,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年侯嘀,在試婚紗的時候發(fā)現(xiàn)自己被綠了另凌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡戒幔,死狀恐怖吠谢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情溪食,我是刑警寧澤囊卜,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站错沃,受9級特大地震影響栅组,放射性物質發(fā)生泄漏。R本人自食惡果不足惜枢析,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一玉掸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧醒叁,春花似錦司浪、人聲如沸泊业。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吁伺。三九已至,卻和暖如春租谈,著一層夾襖步出監(jiān)牢的瞬間篮奄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工割去, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窟却,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓呻逆,卻偏偏與公主長得像夸赫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子咖城,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容