Python_day1_基礎知識

python 簡介

python是一門廣泛流行的動態語言。它不光可以寫后端,還可以寫web,圖像處理,做自動化運維,自動化測試,爬蟲,數據分析。

特點

  • 純面向對象語言,萬物皆對象
  • 支持面向過程和面向對象的編程范式
  • 有著豐富的標準庫和第三方庫支持
  • 良好的可擴展性,可以很容易的和其他語言進行交互

缺點

  • 忘掉吧!

python主流種類

  • CPython. 官方版, 使用C語言實現, 使用最為廣泛, 會將源代碼z轉換成字節碼(.pyc)運行
  • JPython. 使用JAVA實現
  • PyPy. 使用Python實現,為速度而優化

Python2 還是 Python3

因為linux系統自帶python2.x版本。所以在未來幾年還是主要使用版本。
但是3.x不管是從性能還是功能上,已經遠遠超越了2.x,python庫基本上都可以在3.下使用了。所以是時候學習3.x了。

What's new in Python3 ?

  • print to print()
2.x: >>> print "hello world"
3.x: >>> print("hello world")
  • raw_input() to input()
2.x: >>> raw_input(">")
3.x: >>> input(">")
  • All is unicode
    • 再也不用操心亂碼問題
  • 數學運算
2.x: 
>>> 1/2
0
3.x: 
>>> 1/2
0.5

第一個程序

創建一個hello_world.py,內容如下

#/usr/bin/env python3
# -*- coding: utf-8 -*-

print("hello world")

第一行代碼指定使用哪個python解釋器,env會去找名叫python3的解釋器來執行代碼
第二行代碼指定了使用哪種編碼

執行代碼

$ python3 hello_world.py
hello world

縮進

Python的代碼既整潔又美觀,因為它使用縮進來表示層級關系。
推薦使用4個空格來代替Tab鍵。

#/usr/bin/env python3
# -*- coding: utf-8 -*-

if True:
    print("Hello")
else:
    print("World")

就是這么干凈,是不是更喜歡Python了呢!


基本數據類型

數據類型是重點,重點,重點

數字

  • int,整數
    -3,-2,-1,0,1,2,3

  • float,包含小數
    1.2,0.1

  • 字符串
    使用單引號或雙引號括起來的就是字符串。
    'Hello',"World"
    它們有什么區別:沒什么區別,看個人心情。
    不過有個地方要注意一下
    test1 = 'I'm boy'
    test2 = "I'm boy"

    • 字符串格式化
      • 在python中,拋棄字符串拼接 “+”
      • 使用%s
  • 布爾型

    • True
    • False
    • 0 == False,1 == True
  • 列表
    • 定義一個列表 new_list = [1,2,3,4]
    • 列表操作
      • 列表通過索引(下標)獲取數據,索引從0開始。如 new_list[0] 為1
      • append(object) 往列表末尾添加元素
      • clear() 清空列表所有元素
      • copy() 淺拷貝
      • count(value) 統計指定元素出現幾次
      • index(value,[start,[stop]]) 查找指定元素第一次出現的下標
      • insert(index,object) 將元素插入指定位置
      • pop([index]) 默認刪除列表最后一個元素
      • remove(value) 刪除第一次出現的元素
      • sort() 對列表的元素進行排序
      • extend(iterable) 將iterable中的元素添加到列表中
  • 元組
    • 列表是可變的,而元組不可變
    • 聲明一個元組
      • new_tuple = (0,1,2,3)
    • 元組操作
      • count()
      • index()
  • 字典
    • 存儲的k-v鍵值對,查詢速度超級快

變量與賦值

什么是變量?它是一個代號,通過變量,可以調取真實數據。
先聲明一個字符串變量
name = 'wupeiqi'

說明:

  1. 先聲明一個變量名name
  2. 在內存中開辟一個空間,用來存儲字符串 'wupeiqi'
  3. 通過 ‘=’ 把name 指向到存儲 ‘wupeiqi’ 的內存地址
變量說明

現在來打印變量name
print(name)

變量名命名規則

  1. 只能以字母或者下劃線開頭

  2. 由字母下劃線和數字組成
    合法變量名 a_1, _a1
    非法變量名 1_a

  3. Python關鍵字不能作為變量名,如 if else

  4. 盡量使用有意義的變量名


用戶交互

很多情況下,程序需要通過用戶的輸入來進行程序的走向。
比如程序不知道你的性別,所以就要用戶告訴程序。

Python3 使用 input()函數來獲取用戶輸入
sex = input("Are you are boy or girl? ")


流程控制

當知道了用戶輸入,就可以就此來做判斷。
條件判斷 if ... elif ... else

sex = input("Are you are boy or girl? ")

if sex == "boy":
    print("去男廁")
elif sex == "girl":
    print("去女廁")
else:
    print("我也不知道你該去哪個廁所")

循環

這不行啊!如果用戶不小心輸錯性別,那不得后悔死啊!
所以就要用到循環來給用戶更多的機會

while 循環

while True:
    sex = input("Are you are boy or girl? ")
    
    if sex == "boy":
        print("去男廁")
    elif sex == "girl":
        print("去女廁")
    else:
        print("我也不知道你該去哪個廁所")

這下好了,用戶總算可以找對廁所了。
然而,用戶又說了:為毛程序一直問我性別啊!輸對了還問,傻13啊
原來 while 的條件為 True,所以程序會一直運行。

那就讓程序知道為boy時退出(女生繼續玩,嘿嘿)

while True:
    sex = input("Are you are boy or girl? ")
    
    if sex == "boy":
        print("去男廁")
        exit() # exit() 退出程序
    elif sex == "girl":
        print("去女廁")
    else:
        print("我也不知道你該去哪個廁所")

for 循環

都說事不過三,不能老是犯錯誤吧!
所以加個次數限制,如果還是錯了,那真對不起了!

這里限制3次

for i in range(3):
    sex = input("Are you are boy or girl? ")
    
    if sex == "boy":
        print("去男廁")
        exit()
    elif sex == "girl":
        print("去女廁")
    else:
        print("我也不知道你該去哪個廁所")
        print("你到底是男是女還是~~")

有兩個關鍵字可以控制循環

  • break 跳出當前循環
  • continue 跳出本次循環,繼續下一次循環

文件操作

打開文件hello_world.py
new_file = open('hello_world.py','r')

文件模式

  • r, 只讀。
  • w, 只寫。文件存在會覆蓋重寫,文件不存在會創建,
  • a, 追加。文件存在會定位到文件末尾添加新內容,文件不存在會創建并寫入
  • w+

一定要小心使用 w 模式,會抹掉文件內容的

讀取文件

  • new_file.read() 一次性讀取所有內容
  • new_file.readlines() 按行讀取所有內容,依次存儲在列表中
  • new_file.readline() 一次讀取一行

寫入文件
new_file.write("xxx")

關閉文件句柄
new_file.close()

使用with ... as ... 的方式可在運行完代碼后自動close

with open('hello_world.py','r') as f:
    print(f.read)

待補充

基礎很枯燥,很乏味。但卻是最重要的。
沒事多溫習下,發現遺漏的知識點再補充進來。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139
  • 本節內容 Python介紹 發展史 Python 2 or 3? 安裝 Hello World程序 變量 用戶輸入...
    小小不懂11閱讀 3,448評論 2 30
  • Python簡介 Python歷史 Python 是由 Guido van Rossum 在八十年代末和九十年代初...
    莫名其妙的一生閱讀 1,072評論 0 2
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,766評論 18 399
  • 1.應試教育,培養的人:急功近利,沒有解決問題的能力,不具有學習新事物的能力,不具有自主愛學習的性格,不關心社會真...
    劉書亞的天堂之路閱讀 211評論 0 0