摘要:如為,小數(shù)點(diǎn)后兩位是,存在四舍五入。在中,有一個(gè)小坑,就是并不是真正的四舍五入如圖而可以這樣的總結(jié)為在奇數(shù)的時(shí)候,是四舍五入,在偶數(shù)的時(shí)候是五舍六入函數(shù)執(zhí)行后輸出的提示返回的是數(shù)據(jù)類型是,所以有時(shí)需要進(jìn)行類型轉(zhuǎn)換,這樣的函數(shù)。
Python語(yǔ)言的概述
Pyhthon 是 蟒蛇的意思。
python語(yǔ)言的擁有者是 Python Software Foundation(PSF)
RSF是一個(gè)非盈利組織,致力于保護(hù)Python語(yǔ)言開放、開源和發(fā)展。
可以說(shuō):
Python語(yǔ)言是一個(gè)由編程牛人領(lǐng)導(dǎo)設(shè)計(jì)開發(fā)的編程語(yǔ)言
Python語(yǔ)言是一個(gè)有開放、開源精神的編程語(yǔ)言
從應(yīng)用上講,Python語(yǔ)言應(yīng)用于火星探測(cè)、搜索引擎、引力波等眾多領(lǐng)域
在ubuntu里面內(nèi)置了python的環(huán)境,可以在終端中輸入命令python2來(lái)進(jìn)入python2的環(huán)境,輸入python3來(lái)進(jìn)入python3的運(yùn)行環(huán)境。很是方便。
至于window版本,以后再補(bǔ)充。
第一個(gè)Python程序學(xué)習(xí)編程少不了helloWorld!
所以開始吧!
有三種方式運(yùn)行Python,第一種方式直接在終端上操作,第二種方式用文件方式執(zhí)行,第三種用ide集成開發(fā)環(huán)境運(yùn)行。
在終端輸入python3
寫下如下程序:
myString = "hello world!" print(myString)第二種
在某一個(gè)文件中,書寫程序。并命名后綴名為.py
打開終端,見圖
安裝插件python 都是通過(guò)pip命令進(jìn)行安裝的,所以首先安裝pip
在終端中輸入sudo apt install python-pip安裝pip
安裝科學(xué)計(jì)算包numpy
只需輸入命令pip install numpy就可以了,方便吧。
它提示pip需要更新,所以只要輸入pip install update pip即可更新。
使用python開發(fā)平臺(tái)(繼承軟件包)類似于ide,如anaconda
注釋使用#來(lái)進(jìn)行注釋單行。
使用來(lái)進(jìn)行續(xù)行,
1.括號(hào)內(nèi)() []?。?2. `"""`三引號(hào)下包括的字符串也可以跨行書寫。縮進(jìn)
在python中,縮進(jìn)相當(dāng)重要,他代表著不同的語(yǔ)句塊。常用四個(gè)空格
python基礎(chǔ) 變量變量用來(lái)標(biāo)識(shí)一個(gè)對(duì)象或者引用一個(gè)對(duì)象。和其他語(yǔ)言相同。使用變量名,大小寫敏感。
常量python中是沒(méi)有常量一說(shuō)的,任何的量都是可以變得。但是我們可以通過(guò)一些方法來(lái)實(shí)現(xiàn)。如創(chuàng)建一個(gè)常量類。
關(guān)于變量的命名準(zhǔn)許你一定的規(guī)則:
必須是字母、數(shù)字、下劃線和漢字等字符組合。
如:python123 python是一門好語(yǔ)言
大小寫敏感,開頭不能是數(shù)字,同時(shí)不能與python保留字相同。駝峰式命名法。
【注】True和False是首字母大寫的,和Java語(yǔ)言不同。
運(yùn)算符運(yùn)算符在運(yùn)算符有很多種類型。
算數(shù)運(yùn)算符賦值
+ - * / % **(乘方) //(取整)
位運(yùn)算符
~(取反) &(與) |或 ^異或 <<左移 >>右移
比較運(yùn)算符
< > <= >= == !=
邏輯運(yùn)算符
not and or
用=來(lái)賦值。
不需要顯示的來(lái)聲明類型,為什么呢?因?yàn)閜ython是一種動(dòng)態(tài)的強(qiáng)類型語(yǔ)言。根據(jù)值來(lái)確定類型。
和其他語(yǔ)言不同的是,python是通過(guò)引用的方式來(lái)實(shí)現(xiàn)賦值。python中所有的賦值都是將一個(gè)引用指向相應(yīng)的內(nèi)存單元。
如:*= += /= *= %= **= <<= >>= &= |= ^=
他們的實(shí)際就是 x += 1等價(jià)于 x = x +1
可以使用x = y = 1這樣的方式進(jìn)行賦值,從右向左。
多重賦值x,y = 3,4這個(gè),運(yùn)算符,在python中代表著一種元組的數(shù)據(jù)結(jié)構(gòu),為了更加清晰,建議加上括號(hào)(x,y)=(3,4)
介于python中不同于其他語(yǔ)言的賦值方式,可以使用下面的不同賦值形式來(lái)進(jìn)行兩個(gè)元素的互換:x,y = y,x當(dāng)然應(yīng)該寫成(x,y)=(y,x)
更加細(xì)致的解釋后續(xù)再說(shuō)
數(shù)據(jù)類型python是一種動(dòng)態(tài)的強(qiáng)類型語(yǔ)言,分為數(shù)字類型(整型、浮點(diǎn)型)布爾類型
Numbers類型Numbers類型分為四種基本類型int long float complex
int
對(duì)于int而言,在python2.2以后的版本,將他擴(kuò)展到了和計(jì)算機(jī)內(nèi)存有關(guān)的很大的一個(gè)數(shù),不像其他語(yǔ)言會(huì)溢出。所以對(duì)于int和long已沒(méi)有本質(zhì)的區(qū)別。
也就是說(shuō) 在32位機(jī)器上面,int的值范圍是:2^31 -- 2^31-1
在64位機(jī)器上面,int的范圍是:2^63 -- 2^63-1
這個(gè)數(shù)字可是相當(dāng)大了。
float
對(duì)于float類型也就是常說(shuō)的實(shí)數(shù),如5.33
同樣float類型可以用科學(xué)計(jì)數(shù)法表示。
在python輸入1.2e-2則會(huì)輸出:
complex
complex是復(fù)數(shù)形式。復(fù)數(shù)分為實(shí)部和虛部,虛部必須有j
復(fù)數(shù)類型,有很多方法。
可以使用復(fù)數(shù).real獲取實(shí)數(shù)部分
使用復(fù)數(shù).imag獲取虛數(shù)部分
使用復(fù)數(shù).conjugate獲取它的共軛復(fù)數(shù)。
序列類型可以分為字符串(String)、列表、元祖
String類型
可以使用" " """來(lái)包裹String,字符串是不可變類型??梢允褂?b>[]運(yùn)算符來(lái)進(jìn)行元素的獲??;提供遞增索引和遞減索引
也就是說(shuō)正向 0 , 1 , ...
反向: -1 , -2 ,...
關(guān)于字符串的操作有切片:
使用[M:N]命令,即可取出M-N的字符,包左不包右。包括N
列表
使用[]表示,中間的元素用,分離,英文為L(zhǎng)ist,可變類型
通過(guò)保留字in,來(lái)查詢一個(gè)元素是否在列表中。
元組
“圓”組,“圓”組,必須用圓括號(hào)啦,,,()它是不可變類型。
映射類型用{}表示,里面是一些鍵值對(duì),s = {"hello":"world"}
獲取值通過(guò)s["hello"]同樣是[]操作符。
首先每個(gè)對(duì)象在創(chuàng)建的時(shí)候都會(huì)有一個(gè)身份id,這個(gè)id可以使用id()函數(shù)來(lái)查看.
對(duì)于float類型變量來(lái)說(shuō),它存儲(chǔ)的方式就和我們之前說(shuō)的一樣,每創(chuàng)建一個(gè)變量就將其指向一個(gè)地址.
而為了使運(yùn)行更加高效,針對(duì)于小整數(shù)(并無(wú)確切范圍)和字符串是不可變得,也就是說(shuō),只會(huì)為相同的數(shù)據(jù)創(chuàng)建一次.
可以說(shuō)明一切
對(duì)于一些較大的整數(shù)還是會(huì)按正常方式創(chuàng)建
函數(shù)函數(shù)分為內(nèi)建函數(shù)和非內(nèi)建函數(shù),內(nèi)建函數(shù)可以通過(guò)使用命令`dir(__builtins__)`來(lái)進(jìn)行列出.
而非內(nèi)建函數(shù)則需要導(dǎo)入相應(yīng)的模塊.
print函數(shù)
print(變量/字符串)
輸出語(yǔ)句
【注】在Python2中,語(yǔ)法和python3有所不同,需要python + 輸出的內(nèi)容,如上面的helloworld程序,在python2中需要這樣寫:print myString
格式化print函數(shù),有些時(shí)候我們需要按照一定的格式向外輸出語(yǔ)句,現(xiàn)在就需要格式化了。
print("轉(zhuǎn)換后的溫度值為{:.2f}C".format(C))
上面的{}表示槽,后續(xù)變量會(huì)填充在槽中,{:.2f}表示將變量C填充到這個(gè)位置時(shí)取小數(shù)點(diǎn)后兩位。如C為12.3456,小數(shù)點(diǎn)后兩位是12.35,存在四舍五入。
round函數(shù)
round函數(shù)方法返回浮點(diǎn)數(shù)的整數(shù)值,注意是整數(shù)值。具體的規(guī)則看下面。
在python3中,有一個(gè)小坑,就是round()并不是真正的四舍五入.如圖
而可以這樣的總結(jié)為:在奇數(shù)的時(shí)候,是四舍五入,在偶數(shù)的時(shí)候是五舍六入.
input函數(shù)
input("執(zhí)行后輸出的提示")
返回的是數(shù)據(jù)類型是str,所以有時(shí)需要進(jìn)行類型轉(zhuǎn)換,int(),float()這樣的函數(shù)。也可以通過(guò)eval()把他當(dāng)成有效的python表達(dá)式來(lái)求值并返回計(jì)算結(jié)果。
eval函數(shù)
去掉參數(shù)最外側(cè)引號(hào)并執(zhí)行余下語(yǔ)句的函數(shù)。評(píng)估函數(shù)。
模塊所謂模塊,就是一個(gè).py文件.
在物理上的組織方式我們稱為文件.
而在邏輯上的組織方式我們就稱為模塊.
這樣說(shuō)來(lái)這個(gè)就是說(shuō)法不同而已.
所謂的包,就是有層次的文件目錄結(jié)構(gòu).
如下:
AAA/ __int__.py bbb.py CCC/ __int__.py c1.py ... DDD/ __int__.py ... EEE/
以上就是一個(gè)一個(gè)目錄結(jié)構(gòu),如果我們要導(dǎo)入具體的模塊的話,如c1的話,就需要如下命令:
>>>import AAA.CCC.c1 >>>AAA.CCC.c1.func1(123)//通過(guò)import導(dǎo)入的,我們還需要寫前面的一大堆 >>>from AAA.CCC.c1 import func1 >>>func1(123)//這個(gè)就可以直接寫函數(shù)如何導(dǎo)入模塊呢?
有以下幾種方式:
import 包名.類名 import 包名.類名,包名.類名 from 包名.類名 import 具體的屬性和函數(shù)
用import和from import有什么區(qū)別呢?
import:導(dǎo)入包,使用時(shí)要用包.屬性和方法來(lái)使用
from import:將包中的某個(gè)屬性和方法導(dǎo)入,直接用方法和屬性直接使用。
還有一個(gè)不同的地方在于,from import 因?yàn)槭侵苯訉?dǎo)的方法和屬性,這就存在著重名的問(wèn)題,如果程序很大 ,那么重名的就很難受,所以from import 適用于小型代碼量。
語(yǔ)句 分支語(yǔ)句if : elif : else : ,來(lái)表示條件判斷分支語(yǔ)句。
循環(huán)語(yǔ)句 for循環(huán)for 變量 in 可迭代對(duì)象: 被執(zhí)行的語(yǔ)句
可迭代對(duì)象包括:String List Tuple Dictionary File
【注意】for j in range(10)類似這種的,在跳出循環(huán),j不會(huì)像其他高級(jí)語(yǔ)言一樣跳出之后再+1。
Range函數(shù)也生成一個(gè)可迭代的對(duì)象。
例如:
for i in range(5) print(i) 輸出: 0 1 2 3 4
range(N)函數(shù),產(chǎn)生循環(huán)計(jì)數(shù)序列的
range(M,N):產(chǎn)生M到N-1的整數(shù)序列。
range(M,N,Step):步長(zhǎng)
當(dāng)缺省step時(shí),默認(rèn)值為1,
缺省start和step 默認(rèn)值0 和 1
end不能缺省。
range(5): 0,1,2,3,4 產(chǎn)生0到N-1的整數(shù)序列,共N個(gè)
range()生成的是一個(gè)range對(duì)象,類似于一個(gè)生成器generator,可迭代。
可以用在列表解析和生成器表達(dá)式中,具體如下:
列表解析
>>> [i for i in range(10)] [0,1,2,3,4,5,6,7,8,9] >>> [i + 1 for i in range(10) if i%2 == 0 ] [1,3,5,7.9]
生成器表達(dá)式
>>> (i+1 for i in range(10) if i % 2 == 0)at 0x00000100392405900> #生成一個(gè)生成器對(duì)象而不是列表
一般在數(shù)據(jù)量大的時(shí)候用生成器表達(dá)式,在數(shù)據(jù)量小的時(shí)候用列表解析。
while循環(huán)while 條件: 循環(huán)語(yǔ)句continue break 和else
break:跳出當(dāng)前循環(huán)
continue:跳出本次循環(huán)
else:如果循環(huán)代碼從break出終止,跳出循環(huán)
如果正常結(jié)束循環(huán),則執(zhí)行else中的代碼
如:
from math import sqrt num = int(input("Please enter a number:")) j = 2 while j <= int(sqrt(num)): if num% j == 0: print("{:d} is not prime".format(num)) break j += 1 else: print("{:d} is a prime".format(num))自定義函數(shù)
def 函數(shù)名(參數(shù)): 文檔字符串"apply operation + to argument" 函數(shù)體
通過(guò)print fn.__doc__來(lái)獲取文檔字符串
默認(rèn)參數(shù)默認(rèn)參數(shù)可以按照以下給出:
def f(x,y=True): ... ...
這樣在調(diào)用的時(shí)候,如果不給出默認(rèn)參數(shù)就會(huì)直接傳入默認(rèn)參數(shù)。
如調(diào)用f(20)其實(shí)等同于`f(20,True)
【注】不可以將默認(rèn)參數(shù)放在其他參數(shù)的前面。結(jié)合前面的例子:如
def f(x = True,y): ...
如果以上可行的話,調(diào)用f(False)是將False傳給哪一個(gè)呢?
關(guān)鍵字參數(shù)關(guān)鍵字參數(shù)指的是,在調(diào)用函數(shù)的時(shí)候,可以自己指定參數(shù)。如
調(diào)用上面的f函數(shù),可以這樣調(diào)用:f(y= False,x=20)這樣就可以打亂順序自己定義。
【注】:一旦出現(xiàn)了一個(gè)關(guān)鍵字定義了,就必須全部,可以理解為,有兩種模式,一種是普通的參數(shù)傳遞,另一種就是這個(gè)按鍵值進(jìn)行傳,我把這個(gè)開關(guān)打開了,你就必須全部按照這個(gè)規(guī)則去做、
函數(shù)傳遞函數(shù)可以作為參數(shù)進(jìn)行傳遞。
lambda表達(dá)式所謂的lambda表達(dá)式,其實(shí)是匿名函數(shù)。
它是這樣的格式:
lambda 參數(shù)1,參數(shù)2,... : 返回的值
當(dāng)然這個(gè)lambda表達(dá)式賦值給一個(gè)變量就可以通過(guò)這個(gè)變量進(jìn)行調(diào)用了。
如:
r = lambda x : x+x r(5)
輸出:
10
其實(shí)就是等同于以下語(yǔ)句:
def r(x): return x + x測(cè)試
=
1單選(1分)
以下哪一個(gè)語(yǔ)句不可以打印出"hello world"字符串(結(jié)果需在同一行)?
A.print("hello world") B.print("""hello world""") 1.00/1.00 C. print("hello world") D.print("hello world")
2單選(1分)
Python中input()函數(shù)的返回的是以下哪一種類型?
A.dict B.int C.list D.str 1.00/1.00
3單選(1分)
以下關(guān)于模塊module的描述中錯(cuò)誤的是哪一項(xiàng)?
A.用import導(dǎo)入了模塊之后,可以按照“模塊.函數(shù)”的格式使用這個(gè)模塊的函數(shù) B.一個(gè)完整的Python文件即是一個(gè)模塊,是增強(qiáng)Python功能的擴(kuò)展 C.Python目前還不支持一次性導(dǎo)入多個(gè)模塊 1.00/1.00 D.可以使用變量來(lái)引用函數(shù),例如可以通過(guò)bar=math.sqrt進(jìn)行賦值,然后就可以使用bar來(lái)進(jìn)行計(jì)算平方根,例如bar(9)結(jié)果是3.0
4單選(1分)
以下關(guān)于Python的賦值說(shuō)法中錯(cuò)誤的是哪一個(gè)選項(xiàng)?
A.Python 賦值時(shí)大小寫不敏感 1.00/1.00 B.Python中同一個(gè)變量名在不同位置可以被賦予不同的類型與數(shù)值 C.Python中不需要顯式聲明該變量的類型,根據(jù)“值”確定類型 D.Python支持鏈?zhǔn)劫x值和多重賦值
5多選(1分)
以下表達(dá)式的計(jì)算結(jié)果是3(或3.0)的選項(xiàng)有哪些?
A.ord("D") – ord("A") 0.50/1.00 B.1 / 2 + 2.5 0.50/1.00 C.9 // 2 – 1.5 D.35 % 10
6多選(1分)
如果想要查看math庫(kù)中pi的取值是多少,可以利用以下什么方式(假設(shè)已經(jīng)執(zhí)行了import math,并且只要包含pi取值就可以)?
A.help(math) 0.50/1.00 B.dir(math) C.print(math.pi) 0.50/1.00 D. print(pi)
7多選(1分)
以下哪些不是Python的關(guān)鍵字?
A.from B.as C.list 0.50/1.00 D.dict 0.50/1.00
8判斷(1分)
判斷如下陳述是否正確?
Python既可以在Shell中運(yùn)行執(zhí)行,也可以存儲(chǔ)成以.py為擴(kuò)展名的文本文件使用Python解釋器去執(zhí)行。
A.不可以 B.可以 1.00/1.00
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/44637.html
摘要:在機(jī)器學(xué)習(xí)中,用途最廣泛的是向量和矩陣的運(yùn)算。同樣,也提供了到各種數(shù)據(jù)類型的轉(zhuǎn)換函數(shù)。定義這么多函數(shù)太麻煩了,還有一個(gè)通用的轉(zhuǎn)換函數(shù)格式為類型名。這在機(jī)器學(xué)習(xí)的計(jì)算中是件可怕的事情。只有是例外,它會(huì)立即返回這兩個(gè)是否是同一對(duì)象的結(jié)果。 Tensorflow的Tensor意為張量。一般如果是0維的數(shù)組,就是一個(gè)數(shù)據(jù),我們稱之為標(biāo)是Scalar;1維的數(shù)組,稱為向量Vector;2維的數(shù)組...
摘要:在學(xué)生時(shí)代,就羨慕實(shí)驗(yàn)室,老師在里面可以鼓搗各種有意思的東西。再后來(lái),終于發(fā)現(xiàn)原來(lái)計(jì)算機(jī)是一個(gè)最好的實(shí)驗(yàn)室。通過(guò)實(shí)驗(yàn),研究清楚了,才能在編程實(shí)踐中使用。其實(shí),這就是一個(gè)非常好的實(shí)驗(yàn)室。 在學(xué)生時(shí)代,就羨慕實(shí)驗(yàn)室,老師在里面可以鼓搗各種有意思的東西。上大學(xué)的時(shí)候,終于有機(jī)會(huì)在實(shí)驗(yàn)室做大量實(shí)驗(yàn)了,因?yàn)槲沂俏锢硐?,并且,遇到了一位非常令我尊敬的老師——高老師,讓我在他的?shí)驗(yàn)室里面,把所有已經(jīng)...
摘要:前端一種新一代高性能全棧開發(fā)實(shí)踐背景本項(xiàng)目將使用配合最簡(jiǎn)單的邏輯來(lái)展示一個(gè)基于的全新一代高性能全棧開發(fā)實(shí)踐的為什么是對(duì)于為何不是等著名框架,或許可能很多人會(huì)產(chǎn)生疑惑,本身和非常的相似,而它的出現(xiàn),不僅是大大改進(jìn)過(guò)去時(shí)代性能低下通病,外加配 SanicCRUD-vue Sanic + 前端MVVM 一種新一代Python高性能全棧開發(fā)實(shí)踐showImg(https://segmentfa...
閱讀 1668·2021-11-02 14:48
閱讀 3752·2019-08-30 15:56
閱讀 2831·2019-08-30 15:53
閱讀 3264·2019-08-30 14:09
閱讀 3176·2019-08-30 12:59
閱讀 2913·2019-08-29 18:38
閱讀 2756·2019-08-26 11:41
閱讀 2299·2019-08-23 16:45