Python入門的學習方法

来源:https://www.cnblogs.com/baijindashen/archive/2018/11/15/9966281.html
-Advertisement-
Play Games

Python是一個非常優雅的編程語言,語法非常的簡單,很多時候讀一些Python代碼就像讀英語一樣,很適合作為新手學習編程的第一門語言。Python裡面有很多功能非常強大的機器學習和大數據分析的包,所以也適合很多對大數據和人工智慧感興趣的同學來學習。 要想瞭解一門語言,不論是人類語言還是電腦語言, ...


Python是一個非常優雅的編程語言,語法非常的簡單,很多時候讀一些Python代碼就像讀英語一樣,很適合作為新手學習編程的第一門語言。Python裡面有很多功能非常強大的機器學習和大數據分析的包,所以也適合很多對大數據和人工智慧感興趣的同學來學習。

要想瞭解一門語言,不論是人類語言還是電腦語言,首先你需要瞭解這門語言的語法,Python語言也不例外,在這裡我就講一講Python一些語法基礎,包括Python數據類型、變數類型、條件控制、迴圈結構等等。有了這些基礎,我們接下來就能夠學習Python當中稍微複雜一點的函數以及模塊了。

 我還是要推薦下我自己創建的Python學習交流群627044331,這是Python學習交流的地方,不管你是小白還是大牛,小編都歡迎,不定期分享乾貨,包括我整理的一份適合零基礎學習Python的資料和入門教程 

廢話少說,Here we go!

快速開始

Python的安裝我就不用介紹了,對應自己電腦的類型到官網下載安裝就好了,非常簡單。安裝好了之後你可以在命令行中鍵入命令python進入交互模式,也可以使用一款你喜歡的文本編輯器來編寫python腳本,然後在命令行中執行。幾乎對於所有的編程語言來說,第一個程式都是列印"hello, world!"。試用一下代碼就可以列印出“hello, world!”。

greeting = input()	#從鍵盤中輸入“hello, world!”,記住input()函數輸出的都是字元串
print(greeting)

記住在python3中print後面一定要打括弧。你也可以將你的腳本保存為“hello.py”,然後在命令行中執行

python3 hello.py

這樣就可以輸出:

hello, world!

數據類型

Python的語法相對比其它編程語言簡單的地方之一就是它不用申明變數類型。直接用“=”給一個變數賦值後這個變數就被創建了。Python中常見的數據類型有以下幾種:

數字 (Number)

python可以支持整數int(只有長整型), 浮點型float, 布爾型bool以及複數型complex。內置的type()函數可以用來判斷變數的類型,記住type()函數的返回值需要用print()列印出來。

(a, b, c, d) = (10, 5.5, False, 2+5j)
print(type(a))

字元串 (String)

Python中的字元串表示用單引號' '或者雙引號" "括起來的任意字元,比如‘hello, world’, 或者“hello, world”,但如果引號裡面又有引號的話,就需要用反斜線\來轉義。

str = "python"
str.replace('p', 'P')
  1. 切片:Python中字元串可以很方便的截取其中一部分,字元串的第一個字元索引值為0,第二個為1,後面一次累加,最後一個字元串索引為-1。截取的語法為:變數[第一個索引值:第二個索引值]
str1 = str[0]
str2 = str[2:4]

2. 連接和複製:兩個字元串可以用(+)連接成一個字元串,用星號*可以複製字元串

str3 = str1 + str2
str4 = str1 * 3

3. 多行輸出:可以用'''...'''的格式來輸出多行字元串

print('''line1
line2
line3''')

 

4. 判斷是否存在:in或者not in

if "n" not in str:
    ...

5. 格式化輸出:和C語言中的printf用法相同

print("My name is %s and I'm %d years old" % ("Mike", 16))
print("Pi is %f" % (3.1415926)) # %f預設保留小數點後6位有效數字
print("Pi is %.2f" % (3.1415926))

數據結構

列表 (List)

列表應該可以說是Python中最重要最常用的一種數據類型了,python中的列表很像Perl中的數組(array)結構。列表用方括弧[]括起來,用逗號隔開,列表中的每一個元素都從0開始索引,-1為最後一個元素的索引,同樣也可以進行連接(+)和複製(*)操作。

list = [10, "python", 8.2]
list1 = list[0:2]
list2 = list[1:]
list3 = list*2
"python" in list
  1. List的常用內置函數:
  • len():獲得list的長度
  • max()、min():列表元素最大值和最小值(只支持相同類型元素)
  • append():往list的末尾添加元素
  • extend():往列表末尾添加多個值
  • insert(i, NewItem):插入任意元素
  • pop():刪除末尾的元素
  • pop(i):刪除索引是i的元素
  • count(obj):統計某個元素在列表中出現的次數
  • reverse():反向列表
  • sort():列表排序
  • clear():清空列表
  • list(tuple):將元組轉化為列表

元組(Tuple)

元組和列表非常像,唯一不同的是元組中的元素不能修改,用小括弧()括起來,用逗號分開,當元組中只有一個元素時,也要加上逗號。

tuple1 = (8, "tuple", 6.6")
tuple2 = ("hello",)
tuple3 = tuple1[2]
tuple4 = (8, "tuple",[3, 10], 6.6")
tuple4[2][1] = 6  #tuple4中的一個列表中的元素是可以更改的

字典(Dictionary)

Python中的字典就是Perl中的哈希(Hash),或者很多其它語言中的映射Map,字典和列表的區別是字典中的元素是無序的,用大括弧{}來標識,並且是通過健(key)和值(Vavule)來存儲的,健必須是唯一的。

dic1 = {}
dic1["hello"] = "world"
"hello" in dic1	#判斷字典中是否存在某個key
dic2 = {"Yingshan" : "Li", "site" : "www.yingshanli.com"}
  1. 字典的常用內置函數:
  • dic.keys()
  • dic.values()
  • dic.pop("site") #刪除一個key
  • del dic["site"] #刪除一個key
  • dic.clear()
  • key in dic
  • dic.items()

集合(Set)

集合用來存放一組無序且不可重覆的元素,用大括弧{}或者set()函數創建,如果要創建一個空集合就需要用set(),而不是{},因為{}是用來創建空字典的。set()函數只能接納一個list作為參數

num1 = {1, 5, 3, 8}
5 in num	#判斷5是否在集合中
num2 = set([10, 8, 5, 8])	#num2中只有10、8、5三個元素
num2.add(9) #添加元素
num2.remove(8)	#刪除元素
num1 & num2	#並集運算
num1 | num2	#交集運算

條件判斷

條件判斷很簡答,這裡就不贅述了

num = 10
if num > 0:
	print "positive number!"
elif num < 0:
	print "negative number!"
else:
	print "0!"

迴圈控制

Python主要有兩種迴圈,for...in迴圈和while迴圈。for...in迴圈可以遍歷一個列表、元組或者字元串等等

range()函數

  • range(n)輸出0到n-1的整數列表
  • range(m,n)輸出m到n-1的整數列表
  • range(m,n,i)生成從m開始到n-1以i為增量的等差數列
  • range(len())結合可以遍歷一個大小未知的列表

for...in迴圈

names = ["John", "Mike", "Bob"]
for name in names:
	print(name)

 

sum = 0
for i in range(101):
	sum = sum + i

 

while迴圈

n = 10
sum = 0
while n > 0:
	n = n-1
	sum = sum + n

break和continue

break可以跳出整個迴圈體,而continue只是跳出當前迴圈,進入下一個迴圈

迭代器和生成器

 

列表生成式

列表生成式就是生成一個特定列表的表達式,基本語法:[exp for iter_var in iterable],例如:

list1 = [2*a for a in range(10)]

還可以加入一層迴圈:

list2 = [a*b for a in range(3) for b in range(4)]

還可以加入判斷語句:

list3 = [2*a for a in range(10) if a%2 == 1]

這樣寫比用迴圈語句來寫要簡單很多。註意不要忘記把式子用中括弧括起來,因為你要生成的是列表。

 

生成器

用列表生成式生成的列表會把列表中所有的數據全部放入記憶體中,當列表非常大時,會消耗很多的記憶體,並且列表的大小是有限的,因此有些時候我們不必把一個完整的列表一下子生成放在記憶體中,我們可以只保存一個演算法,當需要的時候可以一個一個的推出後續的元素,這種方法就叫做生成器(generator),構造生成器主要有兩種方式:

  1. 像列表生成式一樣,只要中括弧[]改為小括弧():
generator1 = (2*a for a in range(10))

2. 當程式比較複雜難以用列表生成式的方式產生生成器時,使用yield函數:

def cube(num1, num2):
	for i in range(num1, num2):
		yield i^3

當函數看到yield關鍵字時,這個函數就不再是一個普通函數了,而成了一個生成器generator,每一次調用next()函數時就執行一次,遇到yield就返回不再繼續執行,程式會記住當前的位置,直到下一次繼續調用next()再執行下一次,一直到不能再返回值了就報出StopIteration錯誤。

除了可以用next()函數調用生成器中的元素,更普遍的用法是用for迴圈來遍歷生成器中的元素:

g = cube(3, 8)
for n in g:
	print(n)

 

迭代器

 

我們現在已經知道在Python中,可以用for迴圈迭代的對象包括:

  1. string, list, tuple, dictionary, set
  2. 生成器generator

Python中可以用for迴圈迭代的對象統稱為"**可迭代對象Iterable**"。我們可以使用isinstance()函數來判斷對象的類型:

from collections import Iterable
print(isinstance(g, Iterable))

與之相應的,Python中定義可以next()函數調用,並不斷返回下一個值的對象稱之為**迭代器Iterator**,我們知道generator既可以被使用for迴圈,也可以使用next()函數,所以generator既是Iterable也是Iterator。但是string, list, tuple, dictionary, set等等不能使用next()函數,因此只是Iterable,但是可以使用iter()函數將Iterable變成Iterator。

isinstance([], Iterable)
isinstance(iter([]), Iterable)

 

以上差不多就是Python3最核心最基本的語法了,後面我會接著更新Python高級一點的知識,函數與模塊,祝大家學習愉快!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 進程: 正在運行的程式,是系統進行資源分配和調用的獨立單位; 每一個進程都有它自己的記憶體空間和系統資源。 線程: 是進程中的單個順序控制流,是一條執行路徑 一個進程如果只有一條執行路徑,則稱為單線程程式 一個進程如果有多條執行路徑,則稱為多線程程式 多進程的意義: 可以在同一個時間段內執行多個任務; ...
  • 斐波那契數列幾乎是每一個學習編程的人都繞不開的一道筆試題;斐波那契數列是“斐波那契”(偉大的數學家)在養兔子時候發現的非常有意思的數列: 第一個月小兔子沒有繁殖能力,所以還是一對; 兩個月後,生下一對小兔總數共有兩對; 三個月以後,老兔子又生下一對,因為小兔子還沒有繁殖能力,所以一共是三對; ...
  • Base64要求把每三個8bit的位元組轉換為四個6bit的位元組(即3*8 = 4*6 = 24) 1.例如我們有一個中文字元“中國(gb2312)”,轉為十進位為:中-->54992,國-->47610 2.將 中和國 的十進位轉為對應的二進位位:‭1101011011010000‬ 和 ‭1011 ...
  • 當查詢結果是多個的時候,django ORM會返回一個 查詢集(QuerySet) ,表示從資料庫中獲取對象的 集合 。 查詢集可以使用過濾器進行再次處理。 例如查詢閱讀量大於20且評論數大於30的書 因為查詢集類似一個集合,所以可以對查詢集進行取下標或者切片等操作(索引不支持負數)。 查詢閱讀數大 ...
  • Python基礎知識(4):基礎數據類型之字元串(Ⅰ) 字元串是 Python 中最常用的數據類型。可以使用引號“ ”來創建字元串,只要為變數分配一個值即可。例如: name=“Alice” 拼接字元串 結果: orange 字元串方法 1.capitalize:字元串中第一個單詞的首字母轉成大寫 ...
  • 經過前面的學習,我們發現演示的Java代碼越來越複雜,而且每個例子的代碼都堆在入口方法main內部,這會導致如下問題:1、一個方法內部堆砌了太多的代碼行,看著費神,維護起來也吃力;2、部分代碼描述的是通用演算法,比如牛頓迭代法、二分查找法等等,這些通用的演算法代碼結構固定,很多地方會用到,倘若每次都複製 ...
  • In [8]: a={'x':11,'y':22,'c':4}In [9]: import operatorIn [10]: sorted(a.items(),key=operator.itemgetter(1))Out[10]: [('c', 4), ('x', 11), ('y', 22)]In ...
  • 1.環境配置 安裝完python後,把python的include和lib拷貝到自己的工程目錄下 然後在工程中包括進去 2.例子 先寫一個python的測試腳本,如下 這個腳本裡面定義了兩個函數Hello()和_add()。我的腳本的文件名叫mytest.py C++代碼: 註意腳本放的位置,確保C ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...