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