python有巨集這種概念嗎 python

2021-10-12 11:12:28 字數 4574 閱讀 5705

pip install pandas -i --trusted-host pypi.douban.com    安裝pandas模組

pip install matplotlib -i --trusted-host pypi.douban.com  安裝matplotlib模組

pillow  --安裝image庫

pytesseract

pypiwin32   -- 安裝win32api

/:除法運算結果是小數

//:整除(丟掉小數部分)

10%3=1

10%-3=-2

-10%3=2

-10%-3=-1

向下圓整除,結果為負數時,離0更遠

10//3=3

10//-3=-4

-10//3=-4

-10//-3=3

求冪運算

2 ** 3 =8

pow(2,3)

獲取使用者的輸入

input("x:")

if 1==2: print('相等')

在互動式直譯器中輸入if語句後,需要按兩次回車鍵才可以執行它

將浮點數圓整為與之最接近的整數,兩個整數一樣近時圓整到偶數

round(2/3)=1.0

abs(-10)=10

import math    匯入模組

math.floor(32.9)=32    向下圓整

ceil與floor相反,返回大於或等於給定數的最小整數

int(32.9)  將數字轉為整數

from math import sqrt  確定不會從不同模組匯入多個同名函式,此時呼叫函式時可以不用指定模組字首

sqrt(9)=3.0

sqrt(-1)有些平台直接報錯,有時輸出nan(意思是非數值)

此時如果堅持將值域限定為實數,並使用其近似的浮點數實現,就無法計算負數的平凡根

負數的平方根為虛數,而由實部和虛部組成的數為複數。

專門處理複數的模塊

import cmath

cmath.sqrt(-1)

輸出1j

python副檔名需要是.py字尾

想要更有趣的輸出,應考慮使用模組turtle,它實現了海龜繪圖法

form turtle import *

from turtle import *

forward(100)

left(120)

forward(100)

left(120)

forward(100)

要讓鉛筆抬起可使用penup()

要讓鉛筆重新放下,可使用pendown()

命令列執行python指令碼:python test.py

linux下,讓指令碼像程式一樣執行,在檔案最開始加上#!/user/bin/env python

windows下,可以在指令碼末尾加上input("press ")

注釋用#

「let's go!」 不能用單引號將整個字串括起

拼接字串用+

將字串中的特殊字元編碼轉換為相應的字元用

print(repr("hello,\nworld!")

print(str("hello,\nwordld!")  原樣輸出

print("hello,\nworld!")  轉義換行符

print('c:\\nowhere')  輸出c:\nowhere

print(r'c:\nowhere')  輸出c:\nowhere   原始字串字串末尾不能以\結尾

print(r'c:\nowhere' '\\')  原始字串可以用此技巧以\結尾

在python3中,所有的字串都是unicode字串

要表示很長的字串,(跨越多行的字串),可使用三引號''',此時無需使用反斜槓進行轉義

不可變的bytes   (python bytes字面量只支援ascii標準中的128個字元,餘下的需要使用轉義符表示)

可變的bytearray

建立bytes物件,使用字首b,如b'hello,world!'

「hello,world!」.encode("utf-8")

要替換其中的字串,必須將其指定為0-255的值,要插入字元,必須使用ord獲取其序數值

bytearray(b"hello!")

python最基本的資料結構是序列

序列:每個元素都有編號,即其位置或索引,第乙個元素索引是0

負數表示序列末尾元素的位置

常用的序列列表是可以修改,元組不可以

john=['john',50]

edward=['edward',42]

database=[john,edward]  序列還可以包含其他序列

python支援一種資料結構的基本概念-容器,容器基本上可以包含其他物件的物件

既不是序列,也不對映的容器,就是集合(set)

對序列進行迭代,意味著對其每個元素都執行特定的操作

greet='hello'

greet[0]  輸入的就是'h'

-1表示最後乙個元素的位置

切片:tag=''

tag[9:20]   提取序列中的一部分

tag[3:6][4]   第乙個索引指定的元素包含在切片內,第二個索引指定的元素不包含在切片內

tag[-3:0] 結果顯示為[ ]  ,如果第乙個索引指定的元素位於第二個索引指定的元素後面,結果就為空序列

如果切片結束於序列末尾,可省略第二個索引,如tag[-3:]

如果切片開始於序列開頭,可省略第乙個索引

要複製整個序列,可將兩個索引都省略[:]

最後乙個引數指定切片的步長:numbers[0:10:2]

每隔3隔元素提取1個,可以使用number[::4]

步長不能為0,但可以為負數

可以用+來拼接序列,即[1,2]+[3,4]  輸出是[1,2,3,4]

不能拼接列表和字串,雖然他們都是序列,不能拼接不同型別的序列

'python'*5  將重複這個序列x次

空列表是使用不包含任何內容的兩個方括號[ ]表示

建立可包含10個元素的列表,但沒有任何內容,可使用[0]*10,或[none]*10

permissions='rw'

'w' in permissions   檢查特定的值包含在序列中,可使用運算子in,返回true或false

len返回序列包含的元素個數

min、max返回序列中的最小值和最大值

list('hello')  使用字串來建立列表  輸入為['h','e','l','l','o']

要講字元列表轉換為字串,可使用' '.join(somelist)

需改列表:x[1]=2  不能給不存在的元素賦值

刪除列表中的元素:

del names[2]

給切片賦值

name[2:]=list('ar')  從第2個以後的列表替換為'a' 'r'

number[1:1]=[2,3,4] 在1的位置插入2,3,4

number[1:4]=   從索引1開始到索引4,但是不包括索引4

將乙個物件新增到列表中

清空列表 number.clear()   類似於number[:]=

從python2.2開始,list是型別,不是函式了

複製:   b=a.copy()

計算指定的元素在列表**現的次數:

x.count('to')

將多個值附加到列表末尾:

a.extend(b)   其中b=[4,5,6]   a=a+bz這種效率要比extend效率要低

在列表中查詢指定值第一次出現的索引

number.index['who']  返回數字值

將乙個物件插入列表

number.insert(3,'four')   在索引3的位置插入'four'  類似number[3:3]=['four']

從列表中刪除最後乙個元素(末尾為最後乙個元素),並返回這個元素

x.pop()

x.pop(0)    刪除第乙個元素

刪除第乙個指定值的元素

x.remove('be')

相反的順序排列列表中的元素

x.reverse()

對列表排序

x.sort()    從小到大,改變列表

y=sorted(x)   不改變原有x列表

x.sort(key=len)  按照列表中值的長度從小到大排序

x.sort(reverse=true) 相反方向排序

元組,用圓括號括起

包含乙個值的元組,必須在它後面加上逗號(42,)  不加逗號時,(42)和42時完全等效的

tuple([1,2,3])  將乙個序列作為引數,並將其轉換為元組;如果引數是元組,就原封不動的返回它

x=1,2,3   元組的建立和訪問於序列一樣

元組的切片也是元組,就像列表的切片也是列表一樣

熟悉元素的原因:有些函式和方法返回元組

字串(是不可變的)

設定字串的格式

format="hello,%s.%s enough for ya?"

values=('world','hot')

format % values

這種生活同豬有什麼不同?

工作?還是生活?原本,這不應該是個問題。但是,觀察所見,這個不僅僅是個問題,而且問題還很大。中華民族是乙個勤勞勇敢的民族 也許我們大多數人,在孩童時代,在某個教室裡,當初晨的陽光穿越了窗稜,對映出空氣中細小的塵埃,我們在朗朗書聲中,都讀過這樣一句話。是的,中華民族,的確是乙個勤勞的民族,太勤勞了!也...

這種生活同豬有什麼不同?

工作?還是生活?原本,這不應該是個問題。但是,觀察所見,這個不僅僅是個問題,而且問題還很大。中華民族是乙個勤勞勇敢的民族 也許我們大多數人,在孩童時代,在某個教室裡,當初晨的陽光穿越了窗稜,對映出空氣中細小的塵埃,我們在朗朗書聲中,都讀過這樣一句話。是的,中華民族,的確是乙個勤勞的民族,太勤勞了!也...

C 中為什麼有delete 這種寫法?

以 vc 2008 舉例,如果執行以下 foo p new foo 10 intn int p 1 猜猜 n 的值是多少?是 10 編譯器在使用new分配記憶體的時候在返回的記憶體塊裡放了乙個 陣列的 size 而用 new 分配的時候則不會 在使用 delete 的時候,生成的 最後是用 p 去呼...