Python基本語法總結

来源:http://www.cnblogs.com/Msh0923/archive/2017/12/18/8059840.html
-Advertisement-
Play Games

對Python的基本知識進行了重溫和總結。(省略和C++相近的以及深刻瞭解的內容) 1.一般用反斜杠 / 將Python的一行語句分為多行顯示 2.raw_input 輸入內容 遇見回車終止並跳出 3.數據類型之List -- 列表 個人理解類似C++中的數組 4.數據類型之 Tuple -- 元組 ...


對Python的基本知識進行了重溫和總結。(省略和C++相近的以及深刻瞭解的內容)

1.一般用反斜杠 / 將Python的一行語句分為多行顯示

total = item_one + \
        item_two + \
        item_three

2.raw_input 輸入內容 遇見回車終止並跳出

raw_input("\n\nPress the enter key to exit.")

3.數據類型之List -- 列表

個人理解類似C++中的數組

list = [ 'Ma', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
 
print list               # 輸出完整列表
print list[0]            # 輸出列表的第一個元素
print list[1:3]          # 輸出第二個至第三個元素 
print list[2:]           # 輸出從第三個開始至列表末尾的所有元素
print tinylist * 2       # 輸出列表兩次
print list + tinylist    # 列印組合的列表

4.數據類型之 Tuple -- 元組

相當於一個只讀的List

tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
 
print tuple               # 輸出完整元組
print tuple[0]            # 輸出元組的第一個元素
print tuple[1:3]          # 輸出第二個至第三個的元素 
print tuple[2:]           # 輸出從第三個開始至列表末尾的所有元素
print tinytuple * 2       # 輸出元組兩次
print tuple + tinytuple   # 列印組合的元組

5.數據類型之Dictionary -- 字典

dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
 
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
 
 
print dict['one']          # 輸出鍵為'one' 的值
print dict[2]              # 輸出鍵為 2 的值
print tinydict             # 輸出完整的字典
print tinydict.keys()      # 輸出所有鍵
print tinydict.values()    # 輸出所有值

6.判斷數據類型 之 type 與 isinstance

>>> class A:
...     pass
... 
>>> class B(A):
...     pass
... 
>>> isinstance(A(), A)
True
>>> type(A()) == A
False
>>> isinstance(B(), A)
True
>>> type(B()) == A 
False

區別就是:

 type()不會認為子類是一種父類類型。

 isinstance()會認為子類是一種父類類型。

7.邏輯運算符

x and y -- x為False , 返回False,反之,返回y

x or y -- x非零,返回x,否則返回y

not x -- x為True,返回False,x為False,返回True

8.成員運算符

in 如果在指定的序列中找到值返回 True,否則返回 False。

not in 如果在指定的序列中沒有找到值返回 True,否則返回 False。

9.身份運算符

is -- is 是判斷兩個標識符是不是引用自一個對象

is not -- is not 是判斷兩個標識符是不是引用自不同對象

10.條件語句(if)

if 判斷條件1:
    執行語句1……
elif 判斷條件2:
    執行語句2……
elif 判斷條件3:
    執行語句3……
else:
    執行語句4……

11.迴圈之while

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1
 
print "Good bye!"

12.迴圈之for

for letter in 'Python':     # 第一個實例
   print '當前字母 :', letter
 
fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # 第二個實例
   print '當前水果 :', fruit
 
print "Good bye!"

13.迴圈嵌套

嵌套迴圈求出100以內的素數

i = 2
while(i < 100):
   j = 2
   while(j <= (i/j)):
      if not(i%j): break
      j = j + 1
   if (j > i/j) : print i, " 是素數"
   i = i + 1
 
print "Good bye!"

14.Python字元串的三引號

python中三引號可以將複雜的字元串進行複製:

python三引號允許一個字元串跨多行,字元串中可以包含換行符、製表符以及其他特殊字元。

三引號的語法是一對連續的單引號或者雙引號(通常都是成對的用)。

15.關於Python中 Unicode 和 ASCII

電腦只能處理數字,如果要處理文本,就必須先把文本轉換為數字才能處理。Unicode把所有語言都統一到一套編碼里,這樣就不會再有亂碼問題了。Unicode標準也在不斷發展,但最常用的是用兩個位元組表示一個字元(如果要用到非常偏僻的字元,就需要4個位元組)。現代操作系統和大多數編程語言都直接支持Unicode。

ASCII編碼和Unicode編碼的區別:

ASCII編碼是1個位元組,而Unicode編碼通常是2個位元組,舉例如下。

  字母 A 用ASCII編碼是十進位的65,二進位的01000001;

  字元 0 用ASCII編碼是十進位的48,二進位的00110000,註意字元 '0' 和整數   

0 是不同的;

  漢字 中 已經超出了ASCII編碼的範圍,用Unicode編碼是十進位的20013,二進位的01001110 00101101。

  如果把ASCII編碼的 A 用Unicode編碼,只需要在前面補0就可以,因此, A 的Unicode編碼是00000000 01000001。

16.datetime模塊獲取時間

import datetime
i = datetime.datetime.now()
print ("當前的日期和時間是 %s" % i)
print ("ISO格式的日期和時間是 %s" % i.isoformat() )
print ("當前的年份是 %s" %i.year)
print ("當前的月份是 %s" %i.month)
print ("當前的日期是  %s" %i.day)
print ("dd/mm/yyyy 格式是  %s/%s/%s" % (i.day, i.month, i.year) )
print ("當前小時是 %s" %i.hour)
print ("當前分鐘是 %s" %i.minute)
print ("當前秒是  %s" %i.second)

17.Python函數

函數參數的說明:

在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。

  • 不可變類型:變數賦值 a=5 後再賦值 a=10,這裡實際是新生成一個 int 值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。

  • 可變類型:變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

python 函數的參數傳遞:

  • 不可變類型:類似 c++ 的值傳遞,如 整數、字元串、元組。如fun(a),傳遞的只是a的值,沒有影響a對象本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的對象,不會影響 a 本身。

  • 可變類型:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響

lamda匿名函數:只包含一個語句

# 可寫函數說明
sum = lambda arg1, arg2: arg1 + arg2;
 
# 調用sum函數
print "相加後的值為 : ", sum( 10, 20 )
print "相加後的值為 : ", sum( 20, 20 )

18.變數的作用域

定義在函數內部的變數擁有一個局部作用域,定義在函數外的擁有全局作用域。

局部變數只能在其被聲明的函數內部訪問,而全局變數可以在整個程式範圍內訪問。調用函數時,所有在函數內聲明的變數名稱都將被加入到作用域中。如下實例:

total = 0; # 這是一個全局變數
# 可寫函數說明
def sum( arg1, arg2 ):
   #返回2個參數的和."
   total = arg1 + arg2; # total在這裡是局部變數.
   print "函數內是局部變數 : ", total
   return total;
 
#調用sum函數
sum( 10, 20 );
print "函數外是全局變數 : ", total 

結果 局部變數為 30 全局變數為0

## 全局變數想作用於函數內,需加 global ##

19.導入模塊相關

當你導入一個模塊,Python 解析器對模塊位置的搜索順序是:

1、當前目錄

2、如果不在當前目錄,Python 則搜索在 shell 變數 PYTHONPATH 下的每個目錄。

3、如果都找不到,Python會察看預設路徑。UNIX下,預設路徑一般為/usr/local/lib/python/。

模塊搜索路徑存儲在 system 模塊的 sys.path 變數中。變數里包含當前目錄,PYTHONPATH和由安裝過程決定的預設目錄。

20.包

包是一個分層次的文件目錄結構,它定義了一個由模塊及子包,和子包下的子包等組成的 Python 的應用環境。

簡單來說,包就是文件夾,但該文件夾下必須存在 __init__.py 文件, 該文件的內容可以為空。__int__.py用於標識當前文件夾是一個包。

 


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

-Advertisement-
Play Games
更多相關文章
  • urllib庫對照速查表 Python2.X Python3.X urllib urllib.request, urllib.error, urllib.parse urllib2 urllib.request, urllib.error urllib2.urlopen urllib.request ...
  • C++中rand()函數可以用來產生隨機數,但是是屬於偽隨機數。 rand()函數用法: 在使用rand()函數的時候,首先需要包含頭文件#include<stdlib.h>,用法是int rand(void),產生的隨機數範圍是0~65536,類型為unsigned int,不能超過範圍。rand ...
  • [ERROR] COMPILATION ERROR : [INFO] [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?[INFO] 1 er ...
  • CookiesMiddleware預設情況下實現了cookie在請求 響應之間的流轉和填充. 又可以通過 來實現單Spider多cookie. 通過讀源碼也解答了上一篇博文" "Scrapy框架 cookie的獲取/傳遞/本地保存" "中的疑惑. ...
  • 本節對Python Web框架學習 一、MTVModel: 存放所有資料庫相關文件Template:模板文件,存放html文件View: 業務處理,即函數文件 二、MVCmodel: 存放資料庫相關文件view: 存放所有的html文件controler: 存放所有的函數文件 三、DjangoDja ...
  • 最近在看公司項目源碼(Java)的時候,發現項目的結構非常清晰,後期維護非常便捷,原因就是運用了很多巧妙的開發技巧,在這裡也和大家分享一下,希望對你們有幫助。 ...
  • 1 import random 2 import os,shutil #文件的高級操作 3 import glob 4 5 print(random.choice('abcdefggh')) #隨機取一個字母 6 print(random.choice(["apple","beer","banana ...
  • Django內置admin 1.配置路由 2.定製admin 在admin.py中只需要講Mode中的某個類註冊,即可在Admin中實現增刪改查的功能,如: 但是,這種方式比較簡單,如果想要進行更多的定製操作,需要利用ModelAdmin進行操作,如: 3.ModelAdmin中提供了大量的可定製功 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...