Python基礎 一

第一章 Python基礎

第一節 Python 簡介

1. Python的出生

python的創始人爲吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆(中文名字:龜叔)爲了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,做爲ABC語言的一種繼承。

(龜叔:2005年加入谷歌至2012年,2013年加入Dropbox直到如今,依然掌握着Python發展的核心方向,被稱爲仁慈的獨裁者)。java

image-20190619205811650

2. Python的今世

2019年6月的TIOBE排行榜,Python佔據第三的位置, Python崇尚優美、清晰、簡單,是一個優秀並普遍使用的語言。python

image-20190620004813173

據當前來看Python在TIORB排行榜中,位居第三.Python崇尚優美、清晰、簡單,是一個優秀並普遍使用的語言.

Python總體呈上升趨勢,反映出Python應用愈來愈普遍而且也逐漸獲得業內的承認!
  • Python的主要應用領域:c++

    • 雲計算: 雲計算最火的語言, 典型應用OpenStack
    • WEB開發: 衆多優秀的WEB框架,衆多大型網站均爲Python開發,Youtube, Dropbox, 豆瓣。。。典型WEB框架有Django
    • 科學運算、人工智能: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
    • 系統運維: 運維人員必備語言
    • 爬蟲:經過代碼來模擬人進行頁面訪問,對信息進行批量的獲取
    • 金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,並且重要性逐年提升。緣由:做爲動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤爲擅長策略回測'
    • 圖形GUI: PyQT, WxPython,TkInter
  • Python在哪些公司被使用:git

    • 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬蟲、
    • Google廣告等項目都在大量使用Python開發
    • CIA: 美國中情局網站就是用Python開發的
    • NASA: 美國航天局(NASA)大量使用Python進行數據分析和運算
    • YouTube:世界上最大的視頻網站YouTube就是用Python開發的
    • Dropbox:美國最大的在線雲存儲網站,所有用Python實現,天天網站處理10億個文件的上傳和下載
    • Instagram:美國最大的圖片分享社交網站,天天超過3千萬張照片被分享,所有用python開發
    • Facebook:大量的基礎庫均經過Python實現的
    • Redhat: 世界上最流行的Linux發行版本中的yum包管理工具就是用python開發的
    • 豆瓣: 公司幾乎全部的業務均是經過Python開發的
    • 知乎: 國內最大的問答社區,經過Python開發(國外Quora)
    • 春雨醫生:國內知名的在線醫療網站是用Python開發的
    • 除上面以外,還有搜狐、金山、騰訊、盛大、網易、百度、阿里、淘寶 、土豆、新浪、果殼等公司都在使用Python完成各類各樣的任務。

3. Python的歷史

1989年,爲了打發聖誕節假期,Guido開始寫Python語言的編譯器。Python這個名字,來自Guido所摯愛的電視劇Monty Python’s Flying Circus。他但願這個新的叫作Python的語言,能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言。web

1991年,第一個Python編譯器誕生。它是用C語言實現的,並可以調用C語言的庫文件。從一出生,Python已經具備了:類,函數,異常處理,包含表和詞典在內的核心數據類型,以及模塊爲基礎的拓展系統。shell

  • Granddaddy of Python web frameworks, Zope 1 was released in 1999
  • Python 1.0 - January 1994 增長了 lambda, map, filter and reduce.
  • Python 2.0 - October 16, 2000,加入了內存回收機制,構成了如今Python語言框架的基礎
  • Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 誕生
  • Python 2.5 - September 19, 2006
  • Python 2.6 - October 1, 2008
  • Python 2.7 - July 3, 2010
  • In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
  • Python 3.0 - December 3, 2008
  • Python 3.1 - June 27, 2009
  • Python 3.2 - February 20, 2011
  • Python 3.3 - September 29, 2012
  • Python 3.4 - March 16, 2014
  • Python 3.5 - September 13, 2015
  • Python 3.6 - December 16,2016

4. Python是什麼編程語言

編程語言主要從如下幾個角度爲進行分類,編譯型和解釋型、靜態語言和動態語言、強類型定義語言和弱類型定義語言,咱們主要經過編譯型和解釋性來劃分Python是什麼編程語言編程

  • 編譯型與解釋型vim

    編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時windows

    計算機能夠直接以機器語言來運行此程序,速度很快;安全

    解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,

    因此運行速度是不如編譯後的程序運行的快的.

    爲何會有編譯型好解釋型語言是由於計算機不能直接認識並執行咱們寫的語句,它只能認識機器語言(是二進制 的形式)

image-20190619205849528

image-20190619210438708

  • 編譯型

    • 優勢:
      • 編譯器通常會有預編譯的過程對代碼進行優化。由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高。能夠脫離語言環境獨立運行。
    • 缺點:
      • 編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編譯不一樣的可執行文件。
  • 解釋型

    • 優勢:
      • 有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就能夠,能夠快速部署,不用停機維護。
    • 缺點:
      • 每次運行的時候都要解釋一遍,性能上不如編譯型語言。
  • 動態語言和靜態語言

    • 動態類型語言:

      • 動態類型語言是指在運行期間纔去作數據類型檢查的語言,也就是說,

        在用動態類型的語言編程時,永遠也不用給任何變量指定數據類型,該語言會在你第一次賦值給變量時,

        在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其餘的各類腳本語言如

        VBScript也多少屬於動態類型語言。

  • 靜態類型語言:

    • 靜態類型語言與動態類型語言恰好相反,它的數據類型是在編譯其間檢查的,

      也就是說在寫程序時要聲明全部變量的數據類型,C/C++是靜態類型語言的典型表明,

      其餘的靜態類型語言還有C#、JAVA等。

  • 強類型定義語言和弱類型定義語言

    • 強類型定義語言:

      • 強制數據類型定義的語言。也就是說,一旦一個變量被指定了某個數據類型,若是不通過強制轉換,那麼它就永遠是這個數據類型了。

        舉個例子:若是你定義了一個整型變量a,那麼程序根本不可能將a看成字符串類型處理。

        強類型定義語言是類型安全的語言。

    • 弱類型定義語言:

      • 數據類型能夠被忽略的語言。它與強類型定義語言相反, 一個變量能夠賦不一樣數據類型的值。強類型定義語言在速度上可能略遜色於弱類型定義語言,可是強類型定義語言帶來的嚴謹性可以有效的避 免許多錯誤。另外,「這門語言是否是動態語言」與「這門語言是否類型安全」之間是徹底沒有聯繫的!

        例如:Python是動態語言,是強類型定義語言(類型安全的語言); VBScript是動態語言,是弱類型定義語言(類型不安全的語言); JAVA是靜態語言,是強類型定義語言(類型安全的語言)。

        經過上面這些介紹,咱們能夠得出.

        Python是一門動態解釋性的弱類型定義語言。

5. Python的種類

  • Cpython

    • Python的官方版本,使用C語言實現,使用最爲普遍,CPython實現會將源文件(py文件)
    • 轉換成字節碼文件(pyc文件),而後運行在Python虛擬機上。
  • Jyhton

    • Python的Java實現,Jython會將Python代碼動態編譯成Java字節碼,而後在JVM上運行。
  • IronPython

    • Python的C#實現,IronPython將Python代碼編譯成C#字節碼,而後在CLR上運行。(與Jython相似)
  • PyPy(特殊)

    • Python實現的Python,將Python的字節碼字節碼再編譯成機器碼。

image-20190619212451193

看了這麼多內容,感受好厲害已近火燒眉毛的想要動手去試試了,我不得不說,仍是須要在稍等一下.咱們須要安裝一下Python解釋器

6. Python環境安裝

1548322274348

  • 下拉頁面,選擇對應版本:Python3.6.3,以下圖

1548321627327

向下查找,找到Python 3.6.3

  • 根據系統選擇對應的安裝包,以下圖

1548321725742

根據當前系統的選擇對用的,紅色的是windows32位,綠色的是windows64位

  • 下載完成,以下圖

1548321901159

下載完成後找到下載的目錄,而後用鼠標左鍵雙擊

  • 安裝

1548322161259

  • 執行下一步

1548322484875

  • 勾選安裝

1548322828889

  • 安裝進度

1548326046866

  • 安裝成功

1548326046866

  • 驗證是否配置成功

打開電腦的終端(黑窗口),輸入 python回車進去python解釋器,返回的結果入下圖:

image-20190616112616654

  • 退出終端中的Python

在終端中 >>> 輸入exit() 以下圖:

image-20190616112749454

7. 輸出

  • Windows系統使用Notepad++建立一個文本,文本中的內容以下:

    print("hello world")

    寫完後必定要記得保存,保存完後咱們打開咱們的終端,Windows系統的找到圖下的兩個鍵:

    image-20190616122745427

    而後會彈出運行的窗口,咱們在運行的窗口中輸入cmd.

  • Mac系統的電腦首先打開 啓動臺 — 其餘 — 終端 — 輸入 vim 文件名字 而後按鍵盤i 進行輸入而後退出的時候按一下esc鍵 發現文件的左下角有個: 而後在這個位置輸入wq! 回車就好了,具體的請看圖下實例

    img

    咱們如今都打開了終端後再終端中輸入如下命令:

    python 文件名.py

    注意點:python和文件名是有空格的,再次肯定一下你們的如今是否是都是這個樣子的:

    image-20190616131350025

    print() 括號裏面的內容就是要輸出的內容,若是是文字和字母須要用英文的引號引發來,數字直接寫就能夠啦

    python2寫法:      
         print  'hello world'
    
    python3寫法:    
         print('hello world')
    咱們學習的python3版本,python2版本是什麼樣也要知道

    咱們如今成功的將英文的打印出來了,如今咱們使用這種方式打印一下中文的內容吧!

    print("你好 世界")

    而後將文件保存了,保存後咱們在來終端上運行一次.是否是都出現報錯了,出現報錯這個是正常的,咱們只須要在加上一句話就能夠了.

    #conding:utf-8

    這局話必需要加在文件的第一行,這個是告訴解釋器當文件中出現中文的時候使用utf-8的編碼進行查看

8. 變量

什麼是變量?

變量就是把程序運行的中間結果臨時存在內存中,以便後續代碼使用

這個知識點用在哪呢? 變量在咱們後期中常常會被使用

變量如何使用?

name = "meet"

這樣就是在定義一個變量,咱們具體說一下定義變量

name 是一個變量名
=    是一個賦值操做  賦值就是將值交給name
'Meet'  是一個值

變量的做用:暱稱,就是代指內存中某個地址中的內容

image-20190618134605121

咱們定義變量的時候,能夠任意起名字嗎? 應該是有規則的吧,咱們來看看變量定義的規則

  • 變量的定義規則

    • 變量名由字母,數字,下劃線組成

    • 變量名禁止使用數字開頭

    • 禁止使用Python中的關鍵字以及內置函數的名字

      關鍵字以下:

      ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
    • 不建議使用中文和拼音

    • 變量名要具備意義

    • 變量名區分大小寫

    • 推薦寫法:

      • 駝峯體: AgeOfOldboy = 56
      • 下劃線:age_of_oldboy = 56

    這是兩種寫法,大家以爲那種的比較清晰.是否是第二種看着比較清晰,第一種猛的一看還覺得是AngelaBaby呢

    咱們如今定義一個變量知道了,看看定義多個變量

  • 變量的賦值

    name1  =  'Meet'
    name2  =  'Guo'

    此時的name1的值是Meet,name2的值是Guo,咱們來看看下邊的這個變量

    image-20190618140413369

    如今咱們在內存中開闢了兩個空間,分別給不一樣的內存地址貼上不一樣的標籤,咱們來看看下邊的代碼

    name1  =  'Meet'
    name2  =  name1

    image-20190618145713105

    如今的這個name1是meet,name2是name1 也就是name2如今用的是name1的值,name2的值就是meet

  • 變量的小高級

    age1 = 18
      age2 = age1
      age1 = 12
      age3 = age2
      print(age1,age2,age3)

    咱們先來分析一下這個結果是怎樣的,在運行看結果是否和你想的同樣

    若是結果和你想的不一致,你須要注意了.我們代碼的運行是從上至下的執行,而且在內存中只能用一個名字相同的標籤.

    img

    age = 12
      age = 12 + 1
      age1 = age + 1
      print("我今年:",age1)
      name1 = 'alex'
      name2 = name1
      name1 = 'wusir'
      name3 = name2
      打印name1,name2name3分別對應的值是什麼

    經過上邊的小高級和練習咱們能夠得出一個宗旨,代碼是從上向下執行,而且便籤只能有一份,至關於一個變量名只能代指一個值

9. 常量

常量就是將變量名大寫,儘可能保持不更改的一種量 這個常量有是幹什麼的呢 其實我生活中就有一些定死了的量 好比生日,身份證等 我們代碼中,也應該有一些這樣的東西,我們從設計之初就是不讓任何人改變的,因此這個東西就是常量。

10. 註釋

在你寫代碼時,有些代碼寫的比較經典,或者過於複雜,你一眼看不出來,怎麼辦,好比在文言文中,有些出處或者偏難怪的文字,你是否是不理解? 那麼怎麼辦呢?是否是就得有簡單說明。

註釋就是作這個的,咱們來看一下怎麼用

# 這個就是給這一行進行註釋,註釋後的代碼不會執行
'''
這種的是多行註釋, 什麼是多行註釋啊,其實很簡單就是我們註釋的內容能夠
進行換行
'''

看個示例:

# print('hello') 這樣就是對這個代碼進行註釋,而且這個代碼不會執行
'''
print(1)
print(2)
這種就是多行註釋,這樣的註釋也不會執行
'''

11. 基礎數據類型:

什麼是數據類型?

咱們人類能夠很容易的分清數字與字符的區別,可是計算機並不能呀,計算機雖然很強大,但從某種角度上看又很傻,除非你明確的告訴它,1是數字,「漢」是文字,不然它是分不清1和‘漢’的區別的,所以,在每一個編程語言裏都會有一個叫數據類型的東西,其實就是對經常使用的各類數據進行了明確的劃分,你想讓計算機進行數值運算,你就傳數字給它,你想讓他處理文字,就傳字符串類型給他。Python中經常使用的數據類型有多種,今天咱們暫只講3種, 數字、字符串、布爾類型

int是整型;也就是咱們從小就接觸的數學中的整數,整型在計算機中運於計算和比較

在32位機器上int的範圍是: -231~231-1,即-2147483648~2147483647

在64位機器上int的範圍是: -263~263-1,即-9223372036854775808~9223372036854775807

目前這些數字已經夠你用了吧. 注意這些是整數.

  • 整型

    num1 = 2
    num2 = 3
    print(num1 + num2)
    # 結果: 5   
    # 整型就和咱們學的數學同樣能夠進行加減乘除
  • 字符串 str是字符串也就是咱們從小就接觸的中文,若是咱們在程序中直接把中文寫入,程序是不能分辨這是個什麼鬼東西.因此咱們要遵循一種規則讓計算機可以識別,這個規則就是隻要是用引號引發來就是字符串

    在Python中,凡是用引號引發來的,全是字符 .

    字符 能夠用單引號,雙引號,或者三引號引發來,沒有什麼區別,只是一些特殊的格式須要不用的引號 好比:

    msg = "My name is Alex , I'm 22 years old!" 這個就須要單雙引號配合。
    msg =""" 今天我想寫首小詩,
    
    來歌頌個人同桌,
    
    你看他那烏黑的短髮,
    
    好像一隻炸毛雞。
    
    """
    #想寫多個內容還須要使用換行的時候,就須要三引號。

    數字類型能夠作運算,字符串能夠嗎??

    • 字符串加法

      #字符串的拼接
      s1 = 'a' 
      s2 = 'bc'
      print(s1 + s2)
    • 字符串乘法

      str*int name = '堅強'
      print(name*8)
  • 布爾值

    bool是布爾值,布爾值中一共分爲倆個狀態

    True 就是真

    False 就是假

    例如咱們想讓計算機幫咱們計算一下兩個數的比較大小

    print(3>7)
    
    結果: False
    
    print(7>3)
    
    結果: True

    咱們如今簡單的認識了這三個基礎數據類型,咱們在學習一下用戶輸入

12. 輸入

我們在登陸一些網頁和QQ的時候是否是經常會讓我們輸入帳戶或者密碼的狀況,

這樣的狀況在程序中會大量的存在,接下來我們本身實現一個登陸時候要輸入的功能

s = input('請輸入你喜歡的東西')

input就是固定格式,他是輸入的意思 括號裏邊的內容是提示是給用戶看的提示語句,用戶輸入的內容讓input接收了而後賦值給了字符串s

  • 輸入用戶名

    img

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    #將用戶輸入的內容賦值給name變量
    python2的寫法
    name = raw_input("請輸入用戶名:")
    print name
    
    python3的寫法
    name = input("請輸入用戶名:")
    print(name)

    須要注意的是input程序交互獲取到的內容都是字符串,咱們看下面的簡單示例:

    num = input('請輸入數字:')
    print(num + 5)
    
    結果:
    請輸入數字:6
    Traceback (most recent call last):
      File "D:/python_object/test.py", line 350, in <module>
        print(num + 5)
    TypeError: must be str, not int

    報錯了,提示咱們類型錯誤,數字和字符串是不能相加的.但是咱們輸入的明明是數字啊.其實咱們看着輸入的是 數字,可是input獲取到的都是字符串

    這個知識點用在哪裏?

    在工做中若是須要用戶輸入一些我的信息好比帳號,密碼,性別,愛好等,便是你須要將你輸入的信息傳遞給程序當中,那麼就須要用到用戶交互input。

    注意

    在Python2 中使用raw_input              獲取的都是字符串
    在Python3 中使用input                  獲取的都是字符串

13. 流程控制

你在生活中是否是常常遇到各類選擇,好比玩色子,猜大小,好比選擇走那條路回家?Python程序中也會遇到這種狀況,這就用到了if語句。

這個功能就是Python中的流程控制語句if。 那麼如何使用這個功能呢?(下面就是)

if 條件: #引號是將條件與結果分開。
  結果# 四個空格,或者一個tab鍵,這個是告訴程序知足這個條件的結果。切記空格和tab鍵不能混合使用
  • 判斷條件 if
age = input("輸入年齡:")
if int(age) >= 18:
    print("成年了,能幹成年人的事了")
  • 二選一 if else
age = input('請輸入您的年齡:')
if int(age) > 18:
    print('你能夠去網吧盡情的嗨皮了')
else:
    print('你如今還不行啊!')

以上這種寫法是讓用戶輸入內容,而後進行比較,若是一個條件成立那就執行print,爲了明確的區分改執行哪些部分,當條件成立後執行縮進的代碼

而後程序就退出了.下邊的else就不會在執行了

  • 多個選項進行單選或不選 if elif
num = input('請輸入要比較的數字:')
if int(num) >= 22:
    print('能夠扯證了')
elif int(num) >= 18:
    print('成年了,能夠幹一些成年的事了')
elif int(num) < 18:
    print('仍是小屁孩')

以上寫法就是咱們作的單選題同樣,三個分支判斷中只要有個成立,其他都不在執行

  • 多個選項進行單選(必選) if elif else
num = input("請輸入要比較的數字:")
if num > 60:
  print("大了")
elif num < 60:
  print("小了")
else:
  print("猜對了")
  • 嵌套if
name = input('請輸入名字:')
if name == 'meet':
    age = input('請輸入年齡:')
    if int(age) == 18:
        print('輸入所有正確')
    else:
        print('年齡輸入錯誤!')
else:
    print('名字輸入錯誤!')

這樣寫法很經常使用,這樣咱們就能夠明確的知道用戶輸入的名字和年齡那個是錯誤的,而且還作一個判斷若是名字正確後在進行判斷密碼

第二節 運算符

1. Pycharm使用

  • 下載Pycahrm

首先要下載Pycharm這個軟件,官網的下載地址是: http://www.jetbrains.com/pycharm/download/#section=windows

1548326046866

選擇左邊的點擊進行下載,左邊的是專業版右邊是社區版

  • 下載中

1548326046866

出現這個頁面就是正在下載,稍微喝杯茶等等

  • 找到文件

1548326046866

  • 安裝

1548326046866

選擇Next 點擊

  • 選擇要安裝到那個目錄

1548326046866

  • 選擇配置

1548326046866

我是64位機器,我選擇了64,若是是32的就選擇32 [無論64仍是32剩下的都選擇]

  • 點擊安裝

1548326046866

  • 安裝中

1548326046866

  • 安裝成功

1548326046866

出現這個界面的直接點擊Finish關閉就能夠了. 咱們如今切換到桌面

  • 使用Pycharm

1548325864646

找到這個圖標而後雙擊

  • 首次使用Pychram

1548326046866

  • 用戶許可證

1548326092371

  • 激活Pycharm

激活詳情http://idea.lanyus.com/頁面 1548326302535

點擊選擇的內容生成激活碼,而後將激活碼複製到code選項中

1548326228498

  • 個性化設置

1548326213158

這個直接關閉就能夠了

  • 啓動成功

1548326451573

若是你的激活碼沒問題的話,會在個性化,主題設置完畢以後,通過短暫的加載(加載速度取決於電腦性能)進入如圖頁面,到這一步,PyCharm安裝完成了

  • 建立文件

1548326588019

  • PyCharm選擇解釋器

File -- Settings -- Project -- Project Interpreter,這裏會顯示當前系統默認的解釋器,若是要添加別的解釋器,點擊工具圖標,Add local -- Existing environment,點擊三點圖標,在打開的本地文件目錄中選擇解釋器文件的.exe文件。就好了,若是你沒有選擇, PyCharm會自動選擇當前環境默認的解釋器

  • PyCharm建立py文件

1548327074139

鼠標放到大綱而後右鍵鼠標,出現一個New而後鼠標向右滑動選擇python file點擊左鍵

1548327173538

直接寫文件的名字就能夠了,寫完後回車就搞定了.

2. while循環

while 循環 在生活中,咱們遇到過循環的事情吧?好比循環聽歌。在程序中,也是存才的,這就是流程控制語句 while

  • 基本循環
while 條件:
    # 循環體
    # 若是條件爲真,那麼循環則執行
    # 若是條件爲假,那麼循環不執行

img

條件若是爲真就會一直執行下去 也就人們常說的死循環,咱們想要中止就點那個紅色的方塊,若是點擊的x的話,程序並無中止,還在繼續運行着

咱們可使用while循環進行內容循環,咱們怎麼可以讓程序中止運行?

剛剛說到,死循環是由於條件一直都爲真的時候,若是想讓while循環中止最簡單的方式就是將條件修改爲假的,看下面示例

flage = True
str_num = input("請輸入要比較的數字:")
print("進入循環")
while flage:
  if "3" > str_num:
    print("在執行循環")
  else:
    print("要終止循環")
    flage = False
print("退出循環")

咱們如今知道能夠經過變量的形式改變while循環,咱們還能夠經過計數的方式來控制循環執行循環的次數,先來看一下

  • 使用while計數
count = 0
while True:
    count = count + 1
    print(count)

img

這樣下去我就會執行下去,可是我想到100就停了

  • 控制while循環的次數
count = 0
while count < 100:
    count = count + 1
    print(count)

img

while 關鍵後邊的是條件,這樣就能夠經過條件成功的控制住循環的次數,咱們如今知道經過修改while後邊的內容來終止循環,這是我們本身想的辦法,python這個編程語言中是否是應該也得有個終止循環的關鍵字什麼的吧,咱們來找一下試試

  • break關鍵字

咱們除了可使用條件可以讓循環中止,其實Python還給咱們提供了一個break關鍵字來中止循環

num = 1
while num <6:
    print(num)
    num+=1
    break
    print("end")

img

當程序執行到break的時候就結束了.break就是結束當前這個while循環的 break如下的代碼都不執行

  • continue關鍵字

continue 用於退出當前循環,繼續下一次循環

num = 1
while num <6:
    print(num)
    num+=1
    continue
    print("end")

img

注意:break是終止循環,continue是跳出本次循環,繼續下次循環

  • while else使用
# 循環一
while True:
    if 3 > 2:
        print('你好')
        break
else:
    print('很差')


# 循環二
while True:
    if 3 > 2:
        print('你好')
print('很差')

# 你們看到的這個是否是感受效果是同樣的啊,其實否則
# 當上邊的代碼執行到break的時候else縮進後的內容不會執行

img

這個執行的效果是由於

循環一執行了循環也執行了if條件打印了你好而後碰到break循環結束了

循環二執行了循環也執行了if條件打印了你好,可是沒有break 就繼續重複執行了

循環一將3>2改爲3<2這個條件就不成立,而後執行了else裏打印了很差
  • while else 練習

首先讓用戶輸入序號選擇格式以下:

0.退出
1.開始登陸
若是用戶選擇序號0 就提示用戶退出成功
若是用戶選擇序號1就讓用戶輸入用戶名密碼而後進行判斷,正確就終止循環,錯誤從新輸入

3. 格式化輸出

如今有個須要咱們錄入咱們身邊好友的信息,格式以下:

------------ info of Alex Li ----------
             Name  : Alex Li
             Age   : 22
             job   : Teacher 
             Hobbie: girl
    ------------- end ----------------

咱們如今能想到的辦法就是用一下方法:

name = input('請輸入姓名:')
age = input('請輸入年齡:')
job = input('請輸入職業:')
hobby = input('請輸入愛好:')
a = '------------ info of Alex Li ----------'
b = 'Name:'
c = 'Age:'
d = 'Job:'
e = 'Hobby:'
f = '------------- end ----------------'
print(a+
      '\n'+
      b+
      name+
      '\n'+
      c+
      age+
      '\n'+
      d+
      job+
      '\n'+
      e+
      hobby+
      '\n'+
      f)

# 運行結果
------------ info of Alex Li ----------
Name:meet
Age:18
Job:it
Hobby:3
------------- end ----------------

這樣寫徹底沒有問題,可是會不會比較繁瑣呢,有些大佬確定會想這不都實現了嗎,還逼叨逼什麼啊,那是沒有體驗過格式化輸出有多霸道,咱們如今來體驗下霸道的姿式

  • %s
name = input('請輸入姓名:')
age = input('請輸入年齡:')
job = input('請輸入職業:')
hobby = input('請輸入愛好:')
msg = '''
------------ info of Alex Li ----------
Name  : %s
Age   : %s 
job   : %s 
Hobbie: %s 
------------- end ----------------

'''
print(msg%(name,age,job,hobby))

咱們但從代碼的數量來看,這樣就比那樣的少,看到這裏有細心的老鐵們確定在想%s這是啥玩意?

% 是一個佔位, 回想下咱們小時候給朋友佔位子的場景,是的這個就是佔位.那s又是什麼呢? s代碼的字符串類型;

img

  • %d|%
name = input('>>>')
s1 = '1234%d'%int(name)
s2 = '1234%i'%int(name)
print(s1)
print(s2)

結果:
>>>89
123489
123489
# %d和%i這種格式化只能用數字來填補佔位
  • %%
num = input('>>>')
s= '目前學習進度:%s%%'%num
print(s)

結果:
>>>80
目前學習進度:80%

# 若是咱們字符串中想要顯示單獨的%就須要用來個%%來轉義,否則程序會認爲那是一個佔位

4. 運算符

計算機能夠進行的運算有不少種,可不僅加減乘除這麼簡單,運算按種類可分爲算數運算、比較運算、邏輯運算、賦值運算、成員運算、身份運算、位運算.

今天咱們暫只學習 算數運算、比較運算、邏輯運算、賦值運算、成員運算

  • 算數運算

如下假設變量:a=10,b=20

image-20190622181704484

img

  • 比較運算

如下假設變量:a=10,b=20

image-20190622181732841

  • 賦值運算

如下假設變量:a=10,b=20

image-20190622181750923

  • 邏輯運算

image-20190622181808641

針對邏輯運算的進一步研究:

在沒有()的狀況下not 優先級高於 and,and優先級高於or,即優先級關係:

( )>not>and>or,同一優先級從左往右計算。

例題:

判斷下列邏輯語句的True,False。

x or y , x爲真,值就是x,x爲假,值是y;

x and y, x爲真,值是y,x爲假,值是x。

3>4 or 4<3 and 1==1
1 < 2 and 3 < 4 or 1>2 
2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

img

image-20190622181830196

例題:求出下列邏輯語句的值。

8 or 4
0 and 3
0 or 4 and 3 or 7 or 9 and 6
  • 成員運算

in not in :

判斷子元素是否在原字符串(字典,列表,集合)中:

例如:

#print('喜歡' in 'dkfljadklf喜歡hfjdkas')
#print('a' in 'bcvd')
#print('y' not in 'ofkjdslaf')

5. 編碼

我們的電腦,存儲和發送文件,發送的是什麼?電腦裏面是否是有成千上萬個二極管,亮的表明是1,不亮的表明是0,這樣實際上電腦的存儲和發送是否是都是010101啊

咱們發送的內容都是010101010這樣寫的內容比較多就不知道是什麼了,因此咱們想要明確的區分出來發送的內容就須要

在某個地方進行分段.計算機中設定的就是8位一斷句

  • ASCII
計算機:

    儲存文件,或者是傳輸文件,其實是010101010

    計算機建立初期,美國,是7位一段,可是發明者說爲了拓展,留出一位,這樣就是8位一段句。8位有多少種可能 ?256

    密碼本:

    ascii

         00000001

         01000001 01000010 01000011   ABC

隨着計算機的發展. 以及普及率的提升. 流⾏到歐洲和亞洲. 這時ASCII碼就不合適了. 好比: 中⽂漢字有幾萬個. 而ASCII 多也就256個位置. 因此ASCII不行了. 怎麼辦呢? 這時, 不一樣的國家就提出了不一樣的編碼用來適用於各自的語言環境. 好比, 中國的GBK, GB2312, BIG5, ISO-8859-1等等. 這時各個國家均可以使用計算機了.

  • GBK

GBK, 國標碼佔用2個字節. 對應ASCII碼 GBK直接兼容. 由於計算機底層是用英文寫的. 你不支持英文確定不行. 而英文已經使用了ASCII碼. 因此GBK要兼容ASCII. 這裏GBK國標碼. 前⾯的ASCII碼部分. 因爲使⽤兩個字節. 因此對於ASCII碼⽽言. 前9位都是0

字母A:0100 0001 # ASCII
字母A:0000 0000 0100 0001 # 國標碼

隨着全球化的普及,發展到歐洲,亞洲等國家,發現這些根本不夠用,因此建立了萬國碼。 由於全球語言不少,ascii不足以存儲這麼多對應關係,建立了一個超級密碼本:萬國碼unicode

8 位 == 1個字節.
hello h一個字符,e一個字符,he就不是一個字符.
中國:中是一個字符,國是一個字符.
  • unicode

    建立之初,16位,2個字節,表示一個字符.
      英文:  a b c  六個字節   一個英文2個字節
      中文   中國   四個字節  一箇中文用2個字節

    可是這種也不行,這種最多有65535種可能,但是中國文字有9萬多,因此改爲 32位,4個字節,表示一個字符.

    a  01000001 01000010 01000011 00000001
      b  01000001 01000010 01100011 00000001
      中 01001001 01000010 01100011 00000001
      浪費資源.
  • UTF-8

對Unicode進行升級: utf-8 utf-8 用最少用8位數,去表示一個字符. 英文: 8位,1個字節表示. 歐洲文字: 16位,兩個字節表示一個字符. 中文,亞洲文字: 24位,三個字節表示.

utf-16 用最少用16位數。

gbk: 國標,只能中國人本身用, 一箇中文用16位,兩個字節表示。

  • 單位轉化
8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024TB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
常⽤到TB就夠了
相關文章
相關標籤/搜索