python基本語句及其意思_Python語法基礎(1),一

一、Python的對象模型

對象是Python語言中最基本的概率,在Python中處理的一切都是對象。Python中許多內置對象可提供編程者使用,

內置對象可直接使用,如數字、字符串、列表 、del等;非內置對象需要導入模塊才能使用,如正弦函數sin(x),

隨機產生函數random()等;

常用內置對象如下:

c08507d01f7233ec55a3e70f425e4eb8.png

cc28f40d40341a0c52e39cafbcf87670.png

二、Python變量(不需要事先聲明變量名及其類型)

>>>x = 3 創建整型變量x,并賦值為3

>>> x = 'hello world. ' 創建字符串變量x,并賦值為‘hello world.’

如果這兩個創建是在一起的時候,x的值已經不是3了,改為hello word.

如下:

x = 3

print(x)

x = 'hello world'

print(x)

運行結果:

E:\project\Python\python\python.exe E:/project/Python/Process/Test1/Test.py

3

hello world

Process finished with exit code 0

x = 3

#print(x) (#注釋符號)

x = 'hello world'

print(x)

運行結果:

E:\project\Python\python\python.exe E:/project/Python/Process/Test1/Test.py

hello world

Process finished with exit code 0

Python屬于強類型編程語言,Python解釋器會根據**賦值或運算**來自動推斷變量類型。

Python還是一種動態類型語言,變量的類型也是可以隨時變化的。

如:

x = 3

print(type(x))

輸出結果:

x = 'hello world.'

print(type(x))

輸出結果:

x = [1,2,3]

print(type(x))

x = isinstance(3,int)

print(type(x))

輸出結果:

課外補充:

isinstance() 函數來判斷一個對象是否是一個已知的類型,類似 type()。

isinstance() 與 type() 區別:

type() 不會認為子類是一種父類類型,不考慮繼承關系。

isinstance() 會認為子類是一種父類類型,考慮繼承關系。

如果要判斷兩個類型是否相同推薦使用 isinstance()。

重點:

如果變量出現在賦值運算符或復合賦值運算符(例如+=、*=等)的左邊,則表示創建變量或修改變

量的值,否則表示應用該變量的值。

x = 3

print(x**2) #**2 表示x的二次方

x += 6 #等價于x = x(3)+6

print(x)

x = [1,2,3]

x[2] = 5

print(x) #print 可以直接輸出x這個列表

print(x[2])

運行結果:

9

9

[1, 2, 5]

5

**特別注意: 字符串和元組屬于不可變序列,不能通過下標的方式來修改其中的元素值

#(tuple)元組:

x = (1,2,3)

print(x)

x[1] = 3

輸出結果:

Traceback (most recent call last):

File "E:/project/Python/Process/Test1/Test.py", line 3, in

x[1] = 3

(1, 2, 3)

TypeError: 'tuple' object does not support item assignment

#元組對象不支持不支持項目分配

#(stirng)字符串:

x = 'hello world'

print(x)

x[1] = 3

輸出結果:

hello world

Traceback (most recent call last):

File "E:/project/Python/Process/Test1/Test.py", line 3, in

x[1] = 3

TypeError: 'str' object does not support item assignment

#字符串對象不支持項目分配

**在Python中,準許多個變量指向同一個值(**補充:id()函數用于獲取對象的內存地址。id(object返回對象的“身份”。這是一個整數(或長整數),在該對象的生存期內,此整數保證是唯一且恒定的。具有不重疊生存期的兩個對象可能具有相同的id()值。在CPython實現細節:這是對象在內存中的地址。)

x = 3

print(id(x))

y = x

print(id(y))

**輸出結果:**

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

140734928023872

140734928023872

Process finished with exit code 0

如圖:

4753fbfa25a01fdbdc521fd6828f902c.png

如果當其中一個變量改值以后,其內存地址將會變化,但這并不影響另一個變量

x = 3

y = x

x += 6

print(x)

print(id(x))

print(id(y))

輸出結果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

9

140735356760576

140735356760384

Process finished with exit code 0

如圖:

eae179bfd689152ebf11787c03fb474d.png

所以我們得出,

Python采用的是

基于值得內存管理方式

,如果為不同變量賦值為相同值,這個值在內存中只有一份,多個變量指向同一個內存地址。

x = 3

y = 3

z = 3

k = x

j = y

l = z

print(id(x),id(y),id(z),id(k),id(j),id(l))

運行結果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

140735356760384 140735356760384 140735356760384 140735356760384 140735356760384 140735356760384

Process finished with exit code 0

31b1942ebf7a4c849727da8a805e119f.png

在我們驗證結論過程中,我們使用到了變量的賦值,其實Python變量的賦值與一般的其他語言有一些差別。

Python變量語句的執行過程:

1、首先把等號右側表達式的值計算出來,然后在內存中尋找一個位置把值存放進去,最后創建變量指

向這個內存地址。Python中的變量并不直接存儲值,而是存儲了值得內存地址或者應用,這也是變量類

型隨時可以更改的原因

2、同時Python具有自動存儲管理功能,對于沒有任何變量指向的值,Python自動將其刪除,Python跟

蹤所有的值,并自動刪除不再有變量指向的值。因此,Python程序猿一般情況下不需要太多考慮內存管

理的問題。

3、顯示使用del命令刪除不需要的值或顯示關閉不再需要訪問的資源,乃是一個好的習慣,同時也是一個優秀程序員的基本素養之一。

Python變量的定義注意事項:

1、變量名必須以字母或下劃線開頭,但以下劃線開頭的變量在Python中有特性含義

2、變量名中不能有空格以及標點符號(括號、引號、逗號、斜線、反斜線、冒號、句號、問號等)

3、不能使用關鍵字作為變量名,

可以導入keyword模塊后使用print(keyword.kwlist)查看所有PythoN

關鍵字

4、不建議使用系統內置的模塊名、類型名或函數名以及已導入的模塊名及其成員名作變量名,這將會

改變其類型和含義,

可以通過dir(_ builtins_ )查看所有內置模塊、類型和函數;

5、變量名對英文字母的大小寫敏感,如x與X不是同一個變量。

三、數字

數字的特性:

1、數字是不可變對象,可以表示任意大小的數字

2、整數類型可以分為:十進制(我們平時使用的整數)、十六進制整數(利用十六個數字

(1,2,3,4,5,6,7,8,9,a,b,c,d,e,f)來表示整數,數字前面必須以0x開頭,如0xc)、八進制整數(與十六進制類似,必須以0o開頭)、二進制整數(必須以0b開頭)

3、浮點數(小數)

4、Python內置支持

復數類型

a = 1 + 12j

b = 12 + 1j

c = a + b

print(c)

運行結果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

(13+13j)

Process finished with exit code 0

/**使用c.real ---> 查看復數實部

c.imag ----> 查看復數虛數

c.conjugate() ---->返回共軛復數

a*b---->復數乘法

a/b---->復數除法

*/

5、Python3.6.X支持數字中間位置使用單個下劃線作為分割來提高數字的可讀性,類似于數學上使用逗號作為千分位分隔

符。

>>>x = 1_000_000

>print(x)

1000000

四、字符串

性質:

1、用單引號、雙引號或三引號界定的符號系列稱為字符串

2、 單引號、雙引號、三單引號、三雙引號可以互相嵌套, 用來表示復雜字符串 ‘abc’、‘123’、‘中國

‘、“Python”、’’‘Tom said, “Let’s go”’’’

print("janry")

print('seri')

print('xx'"x")

print('''tomm''')

運行結果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

janry

seri

xxx

tomm

Process finished with exit code 0

3、 字符串屬于不可變序列 ? 空字符串表示為’‘或 “”

4、 三引號’’'或"""表示的字符串可以換行,支持排版較為復 雜的字符串;三引號還可以在程序中表示較長的注

字符串的運算:

1、字符串合并

a = "xiha"

b = "haxi"

c = a + b

d = "hshsh""xjjjx"

print(c)

print(d)

運行結果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

xihahaxi

hshshxjjjx

Process finished with exit code 0

#注意 :不準許如此連接字符串

d = ab # 錯誤 NameError: name 'ab' is not defined

2、字符串格式化

%d、%i轉換為帶符號的十進制整數

%o轉換為帶符號的八進制整數

%x、%X轉換為帶符號的十六進制整數

%e轉化為科學計數法表示的浮點數(e 小寫)

%E轉化為科學計數法表示的浮點數(E 大寫)

%f、%F轉化為十進制浮點數

%g智能選擇使用 %f 或 %e 格式

%G智能選擇使用 %F 或 %E 格式

%c格式化字符及其 ASCII 碼

%r使用 repr() 函數將表達式轉換為字符串

%s使用 str() 函數將表達式轉換為字符串

%10d 表示輸出的整數寬度至少為 10;

%20s 表示輸出的字符串寬度至少為 20。

%m.nf 、 %.nf (對于小數(浮點數),print() 還允許指定小數點后的數字位數,也即指定小 數的

輸出精度。精度值需要放在最小寬度之后,中間用點號.隔開;也可以不寫最小寬度,只寫精度。

print('%1.3f'%12.22222) #輸出數字的編寫形式,注意引號的個數

print("%d:%c"%(65,65))#輸出字符

#print("%1.3"%12.111)

print("""my name is %s ,and age is 12 %d"""%('xixi',39)) #輸出字符串

print()

運行結果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

12.222

65:A

my name is xixi ,and age is 12 39

Process finished with exit code 0

3、常用轉義字符

ae7ba5b32112949973f6e679356cf4d9.png

轉義字符用法

print('hello \n world') #\n轉行符

print('\101') #三位八位進制對應的字符

print('\x41') #兩位十六進制數對應的字符

print('我是\u5f20\u4e09') #四位十六進制數表示Unicode字符

運行結果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

hello

world

A

A

我是張三

Process finished with exit code 0

補充:

字符串界定符前面加字母r或R表示

原始字符串

,其中的特 殊字符不進行轉義,但字符串的最后一個

字符不能是\。 原始字符串主要用于正則表達式、文件路徑或者URL的場合。

path = 'C :\Windows\notepad.exe' #字符\n被轉義為換行符

print(path)

PATH = r'C:\windows\notepad.exe' #原始字符串,任何字符都不轉義

print(PATH)

運行結果:

E:\project\Python\projectTopy\venv\Scripts\python.exe E:/project/Python/projectTopy/Test.py

C :\Windows

otepad.exe

C:\windows\notepad.exe

Process finished with exit code 0

繼續學習,敬請查看

Python 語法基礎(二)

原文鏈接:https://blog.csdn.net/weixin_43452424/article/details/104519943

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452847.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452847.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452847.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是隧道技術

隧道技術是一種通過互聯網絡基礎設施在網絡之間傳遞數據的方式。使用隧道傳遞的數據可以是不同協議的數據幀或包,隧道協議將這些其它協議的數據幀或包重新封裝在新的包頭中發送,被封裝的數據包在隧道的兩個端點之間通過公共互聯網絡進行路由,…

詳解網絡數字電視的實現方法與關鍵技術

1、IPTV的實現方法 寬帶網絡數字電視,又稱IPTV或BTV,即交互式網絡電視,是一種利用寬帶互聯網、多媒體等多種技術于一體,向家庭用戶提供包括數字電視在內的多種交互式服務的嶄新技術。它能夠很好地適應當今網絡飛速發展的趨勢&…

有狀態的bean和無狀態的bean的區別

有狀態會話bean :每個用戶有自己特有的一個實例,在用戶的生存期內,bean保持了用戶的信息,即“有狀態”;一旦用戶滅亡(調用結束或實例結束),bean的生命期也告結束。即每個用戶最初都會…

因為我想在博客園長呆,所以給博客園提一些改進建議

一晃眼我來博客園已經有4個月了,我的排名從9萬多上升到9千多,也有不少朋友關注了我,其實對我幫助更大的是博客園的管理團隊,他們對我的文章提出了很多很好的改進建議,從而讓我的文章水平有了很大的提升。 這里我從用戶…

double 二進制 java_C#中將double值變成二進制然后寫入文件,Java中載入該文件讀取此二進制double值時不正確...

目前已定位到是因為C#中的byte范圍是0到255,而java中byte值為-128到127導致的錯誤。嘗試過使用C#的sbyte來解決:bw1 new BinaryWriter(new FileStream("C:\\Users\\DELL\\Desktop\\SpatialIndex\\ctest1.bin", FileMode.Create));bw2 new Bi…

什么是移動IP

移動代理 (Mobility Agent):又分為歸屬代理和外區代理兩類。歸屬代理是歸屬網上的移動代理,它至少有一個接口在歸屬網上。其責任是當移動節點移動到外區網時,截收發往該點的數據包,并使用隧道技術將這些數據…

Ubuntu中安裝nginxError

問題1:出現如下錯誤: ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCR…

項目經理如何把工作簡單化

做一件事有兩種方式。其一是把簡單的事情復雜化,另外就是把復雜的事情簡單化。項目經理應該如何選擇呢?恐怕大家會異口同聲的說,當然是把復雜的事情簡單化。但是,在實際工作中,很少有項目經理能夠做到這一點。他們會不知不覺中把…

[luogu P2590 ZJOI2008] 樹的統計 (樹鏈剖分)

題目描述 一棵樹上有n個節點,編號分別為1到n,每個節點都有一個權值w。 我們將以下面的形式來要求你對這棵樹完成一些操作: I. CHANGE u t : 把結點u的權值改為t II. QMAX u v: 詢問從點u到點v的路徑上的節點的最大權值 III. QSUM u v: 詢問從…

jetty xml解析

1 configure configure為xml的根結點,class指定所配置的對象的類,這個configure會創建一個該類的對象,然后根據該xml對其進行配置。id用來對該對象進行標識,在整個jetty中具有唯一性,相同id的xml configure文件配置的是…

java 歌詞_請問吧內有大神用JAVA做過桌面歌詞嗎

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓寫了個簡單的例子給你:public class TextChangePane extends JComponent implements ActionListener {private static final int CYCLE_TIME 10000;private long startTime 0;private long nowTime 0;private float …

組播相對于單播和廣播的優勢

組播協議允許將一臺主機發送的數據通過網絡路由器和交換機復制到多個加入此組組播協議。 與現在廣泛使用的單播協議的不同之處在于,一個主機用單播協議向n個主機發送相同的數據時,發送主機需要分別向n個主機發送,共發送n次。一個主機用組播協…

安裝nginx及fastdfs-nginx-module

1.先了解背景: FastDFS為什么要結合Nginx以及FastDFS原理,請參考文章: FastDFS為什么要結合Nginx以及FastDFS原理 2.準備工作: 安裝安裝Nginx所需的環境,參考文獻:Ubuntu 18.04.1安裝Nginx apt install …

如何讓自己的內心強大起來

內心強大的人是指一個人的精神境界達到了一定的級別!以至于讓人們折服! 世界上有這么一種人,似乎特別得到老天爺的偏愛——他總是有自己的理想,并且總是努力去做,最重要的是,老天爺每一次都會幫他取得成功…

什么是軟件工程

軟件工程是指導計算機軟件開發和維護的一門工程學科。采用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經濟地開發出高質量的軟件并有效地維護它,這就是軟件…

linux下的靜態庫與動態庫

目錄 靜態庫定義:生成及使用方法:靜態庫的優缺點動態庫定義:生成及使用方法:動態庫優缺點:靜態庫 先說說我們為什么需要庫? 當有些代碼我們大量會在程序中使用比如(scanf,printf等&a…

esrgan_ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks【閱讀筆記】

針對SRGAN提出的幾點改進,獲得了PIRM2018視覺質量的第一名。首先是使用去掉BN層的Residual in Residual Dense Block作為網絡的basic unit。并且使用residual scling 和 smaller initialization幫助訓練更深的網絡。第二點改進是使用了Relativistic Discriminator來…

PostgreSQL Frontend/Backend protocol (通信協議)

標簽 PostgreSQL , protocol , proxy , 通信協議 背景 理解PostgreSQL的通信協議可以更好的開發類似SQL代理,SQL中間件,SQL防火墻,連接池等軟件。 學習資料與軟件 《PostgreSQL 讀寫分離代理 - Crunchy Proxy(base on golang)》 Postgres on …

啟動FastDFS服務,使用python客戶端對接fastdfs完成上傳測試

1.啟動tracker、storage、nginx服務: 啟動fdfs_trackerd:sudo service fdfs_trackerd start 啟動fdfs_storaged :sudo service fdfs_storaged start 啟動Nginx:sudo /usr/local/nginx/sbin/nginx 注:此處給出重啟服務…

軟件工程方法學

傳統方法學 傳統方法學也稱為生命周期方法學或結構化范型。它采用結構化技術(結構化分析、結構化設計和結構化實現)來完成軟件開發的各項任務,并使用適當的軟件工具或軟件工程環境來支持結構化技術的運用。 面向對象方法學 與傳統方法相反,面向對象方…