python當(dāng)中的eval()函數(shù)是將字符串當(dāng)成有效Python表達(dá)式來求值,并返回計算結(jié)果
成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)公司、微信開發(fā)、微信平臺小程序開發(fā)、集團(tuán)成都定制網(wǎng)站等服務(wù)項目。核心團(tuán)隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都格柵板等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致稱譽(yù)!
x?=?1
eval('x+1')
eval('x==1')
與之對應(yīng)的repr函數(shù),它能夠?qū)ython的變量和表達(dá)式轉(zhuǎn)換為字符串表示:
repr(x+1)
repr(x+ ‘1’-1)('x=+=1')
Python是純粹的自由軟件,?源代碼和解釋器CPython遵循?GPL(GNU?General Public License)協(xié)議。Python語法簡潔清晰,特色之一是強(qiáng)制用空白符(white space)作為語句縮進(jìn)。
Python具有豐富和強(qiáng)大的庫。它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。
常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴(kuò)展類庫。
需要注意的是在您使用擴(kuò)展類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實現(xiàn)。
cmp是python的內(nèi)建函數(shù).
cmp(x,y) 用于 compare x 和 y的值.
sort(cmp)只是用于說明,python中函數(shù)也是可以作為參數(shù)傳入其他函數(shù)來進(jìn)行調(diào)用的,排序的依據(jù)就是cmp.
input("提示性信息")
如:
input("請輸入數(shù)字")
因為 Python 沒有特別人為規(guī)定數(shù)據(jù)類型,數(shù)據(jù)類型是由計算機(jī)進(jìn)行判定,所以我們 input() 輸入的數(shù)據(jù)均默認(rèn)作為字符串處理,而如果要輸入一些數(shù)字,著需要 eval() 評估函數(shù)對字符串進(jìn)行評估,化為語句(數(shù)字)。
print(...)
默認(rèn)空一行,如果想不空行,則
print(...., end = "")
特性:
進(jìn)制:
特性:
浮點數(shù)間運(yùn)算存在不確定尾數(shù),不是 bug
如:0.1+0.3 → 0.4
0.1+0.2 → 0.30000000000000004
這是由于在計算機(jī)中一切數(shù)據(jù)都是化為二進(jìn)制進(jìn)行存儲的,而有的浮點數(shù)并不能完全化為相等的二進(jìn)制數(shù),只能無限趨近于二進(jìn)制數(shù)。
如:0.1 →
解決方法:
四舍五入:
例如:z = 1.23e-4 + 5.6e+89j
z.real 獲得實部,z.imag 獲得虛部
三種類型存在一種逐漸“擴(kuò)展”或“變寬”的關(guān)系:
整數(shù) → 浮點數(shù) → 復(fù)數(shù)
特點:
字符串有 2 類共 4 種表示方法:
擴(kuò)展:
使用[]獲取字符串中一個或多個字符
使用[M:N:K]根據(jù)步長對字符串切片
{參數(shù)序號:格式控制標(biāo)記}
右對齊
^ 居中對齊 | 槽設(shè)定的輸出寬度 | 數(shù)字的千位分隔符 | 浮點數(shù)小數(shù)精度 或 字符串最大輸出長度 | 整數(shù)類型
b , c , d , o , x , X
浮點數(shù)類型
e , E , f , % |
填充、對齊、寬度這三個一組,例如:
"{0:=^20}".format("PYTHON")
→ '=======PYTHON======='
"{0:*20}".format("BIT")
→ '*****************BIT'
"{:10}".format("BIT")
'BIT '
剩下的三個一組,例如:
"{0:,.2f}".format(12345.6789)
→ '12,345.68'
"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}x".format(425)
→ '110101001,Σ,425,651,1a9,1A9'
"{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
↓CloseCode↓
使用 raise 語句拋出一個指定的異常。
raise [Exception [, args [, traceback]]]
緊湊形式:適用于簡單表達(dá)式的二分支結(jié)構(gòu)
表達(dá)式1 if 條件 else 表達(dá)式2
例如:
↓CloseCode↓
↓CloseCode↓
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
由條件控制的循環(huán)運(yùn)行方式
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
↓CloseCode↓
可選參數(shù)例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
可變參數(shù)例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
在函數(shù)定義中,經(jīng)常會碰到 *args(arguments) 和作為參數(shù) **kwargs(keyword arguments)。
(事實上在函數(shù)中,和才是必要的,args 和 kwargs 可以用其他名稱代替)
*args 是指不定數(shù)量的非鍵值對參數(shù)。
**kwargs 是指不定數(shù)量的鍵值對參數(shù)。
*args 作為作為元組匹配沒有指定參數(shù)名的參數(shù)。而 **kwargs 作為字典,匹配指定了參數(shù)名的參數(shù)。
*args 必須位于 **kwargs 之前。
args( 通常緊跟一個標(biāo)識符,你會看到a或者args都是標(biāo)識符)是python用于接收或者傳遞任意基于位置的參數(shù)的語法。當(dāng)你接收到一個用這種語法描敘參數(shù)時(比如你在函數(shù)def語句中對函數(shù)簽名使用了星號語法),python會將此標(biāo)識符綁定到一個元祖,該元祖包含了所有基于位置的隱士的接收到的參數(shù)。當(dāng)你用這種語法傳遞參數(shù)時,標(biāo)識符可以被綁定到任何可迭代對象(事實上,它也可以是人和表達(dá)式,并不必須是一個標(biāo)識符),只要這個表達(dá)式的結(jié)果是一個可迭代的對象就行。
**kwds(標(biāo)識符可以是任意的,通常k或者kwds表示)是python用于接收或者傳遞任意基于位置的參數(shù)的語法。(python有時候會將命名參數(shù)稱為關(guān)鍵字參數(shù),他們其實并不是關(guān)鍵字--只是用他們來給關(guān)鍵字命名,比如pass,for或者yield,還有很多,不幸的是,這種讓人疑惑的術(shù)語目前仍是這門語言極其文化根深蒂固的一個組成部分。)當(dāng)你接收到用這種語法描敘的一個參數(shù)時(比如你在函數(shù)的def語句中對函數(shù)簽名使用了雙星號語法)python會將標(biāo)識符綁定到一個字典,該字典包含了所有接收到的隱士的命名參數(shù)。當(dāng)你用這種語法傳遞參數(shù)時,標(biāo)識符只能被綁定到字典(我ID號I它也可以是表達(dá)式,不一定是一個標(biāo)識符,只要這個表達(dá)式的結(jié)果是一個字典即可)。
當(dāng)你在定義或調(diào)用一個函數(shù)的時候,必須確保a和k在其他所有參數(shù)之后。如果這兩者同時出現(xiàn),要將k放在a之后。
lambda函數(shù)返回函數(shù)名作為結(jié)果
↓CloseCode↓
例如:
↓CloseCode↓
運(yùn)行結(jié)果:
↓CloseCode↓
謹(jǐn)慎使用lambda函數(shù)
python有兩種編程方式,交互式和文件式。
交互式:對每個輸入語句即時運(yùn)行結(jié)果------適合語法練習(xí)
文件式:批量執(zhí)行一組語句并運(yùn)行結(jié)果------編程的主要方式
實例1:圓面積的計算(根據(jù)半徑r計算圓面積)
上圖明顯是交互式運(yùn)行的結(jié)果,如果想編輯文件式運(yùn)行,則先編輯一個calcircle.py文件,將上述代碼寫進(jìn)去。
然后輸入代碼 python calcircle.py,命令界面即可輸出代碼結(jié)果。
下面我們試試?yán)L制多個同心圓的代碼:
1 import turtle 2 turtle.pensize(2) 3 turtle.circle(10) 4 turtle.circle(40) 5 turtle.circle(80) 6 turtle.circle(160) 7 turtle.done()
運(yùn)行結(jié)果,如下圖所示
下面我們稍微分析一下這段代碼
import turtle#導(dǎo)入海龜庫 turtle.pensize(2)#設(shè)置畫筆的大小 turtle.circle(10)#畫圓,半徑為正(負(fù)),表示圓心在畫筆的左邊(右邊)畫圓 turtle.circle(40) turtle.circle(80) turtle.circle(160) turtle.done()#必須是烏龜圖形程序中的最后一個語句
關(guān)于turtle庫的使用,之后還會提及,turtle庫是python的自帶庫,繪制圖像相對來說比較方便,容易理解
當(dāng)然上述的代碼也可以這樣寫
1 from turtle import * 2 pensize(2) 3 circle(10) 4 circle(40) 5 circle(80) 6 circle(160) 7 done()
大家很容易發(fā)現(xiàn)他們的不同,就是第一句的區(qū)別,關(guān)于import的用法也將在后續(xù)章節(jié)詳細(xì)講述。
下面我們來畫一個難一點的圖形
from turtle import * color('red','black')#前一個顏色是線條色,后一個是填充色 begin_fill()#從這里開始填充 for i in range(5):#畫五筆就可以結(jié)束 fd(200) rt(144)#向右旋轉(zhuǎn)144度 end_fill()#結(jié)束填充 done()
下面我們從一個簡單的小程序來分析python的語法體系
我們大家都知道,華氏溫度和攝氏溫度之間的轉(zhuǎn)換,我們可以用python編程實現(xiàn)
TempStr = input("請輸入帶有符號的溫度值: ")#input顯示的內(nèi)容出現(xiàn)在屏幕上,且返回一個str類型的字符串 if TempStr[-1] in ['F', 'f']:#如果最后一個字符是F C = (eval(TempStr[0:-1]) - 32)/1.8#eval將字符串轉(zhuǎn)換成數(shù)字 print("轉(zhuǎn)換后的溫度是{:.2f}C".format(C))#格式化輸出 elif TempStr[-1] in ['C', 'c']: F = 1.8*eval(TempStr[0:-1]) + 32 print("轉(zhuǎn)換后的溫度是{:.2f}F".format(F)) else: print("輸入格式錯誤")
縮進(jìn):縮進(jìn)表達(dá)程序的格式框架
1、嚴(yán)格明確:縮進(jìn)是語法的一部分,縮進(jìn)不正確程序運(yùn)行錯誤
2、所屬關(guān)系:表達(dá)代碼間包含層次關(guān)系的唯一手段
3、長度一致:使用TAB鍵即可
python編程語言有一個重要的特點就是取消了{(lán) }而用縮進(jìn)的方式進(jìn)行代碼塊的分割,初學(xué)者可能不習(xí)慣,多寫幾次就習(xí)慣了這種寫法。
注釋:不被程序執(zhí)行的輔助性說明信息
單行注釋:
#這是單行注釋
多行注釋:
1 ''' 這是多行注釋 2 3 23333333333333 '''
變量:程序中用于保存和表示數(shù)據(jù)的占位符號
變量采用標(biāo)識符(名字)來表示,關(guān)聯(lián)標(biāo)識符的過程叫命名
TempStr是變量名字
可以使用等號(=)向變量賦值或修改值,=被稱為賦值符
TempStr="82F" #向變量TempStr賦值"82F"
命名規(guī)則:大小寫字母、數(shù)字、下劃線和漢字等字符
如:TempStr、Python_Great
注意事項:大小寫敏感、首字符不能是數(shù)字、不與保留字相同
python與Python是不同的變量,123Python是不合法變量
保留字
被編程語言內(nèi)部定義并保留使用的標(biāo)識符
python語言有33個保留字(也叫關(guān)鍵字)
if,elif,else,in
保留字是編程語言的基本單詞,大小寫敏感
if是保留字,If是變量
保留字
數(shù)據(jù)類型
字符串、整數(shù)、浮點數(shù)、列表
10011101該如何解釋呢?
這是一個二進(jìn)制數(shù)字或十進(jìn)制數(shù)字
作為二進(jìn)制數(shù)字,10011101的值是十進(jìn)制157
這是一段文本或者用逗號分隔3個數(shù)字
作為一段文本,逗號是文本中的一部分,一共包含10個字符
整數(shù)類型10011101
字符串類型:"10,011,101"
列表類型:[10,011,101]
字符串:由0個或多個字符組成的有序字符序列
由一對雙引號或一對單引號表示
"helloworld"或'GOOD'
字符串是字符的有序序列,可以對其中字符進(jìn)行索引
如"你"是"你好啊"這個字符串的第0個字符
python的字符串序號,正向遞增,反向遞減
字符串的使用
使用[ ]獲取字符串中一個或多個字符
1 TempStr = input("請輸入帶有符號的溫度值: ") 2 if TempStr[-1] in ['F', 'f']:#TempStr[-1]指的是最后一個字符 3 C = (eval(TempStr[0:-1]) - 32)/1.8#TempStr[0:-1]指的是字符串從第一個到最后一個之前的所有字符串 4 print("轉(zhuǎn)換后的溫度是{:.2f}C".format(C)) 5 elif TempStr[-1] in ['C', 'c']: 6 F = 1.8*eval(TempStr[0:-1]) + 32 7 print("轉(zhuǎn)換后的溫度是{:.2f}F".format(F)) 8 else: 9 print("輸入格式錯誤")
數(shù)字類型:整數(shù)和浮點數(shù)
整數(shù):數(shù)學(xué)中的整數(shù)
32或-89
浮點數(shù):數(shù)學(xué)中的實數(shù),帶有小數(shù)部分
1.8或者-1.8或者-1.0
列表類型:由0個或多個數(shù)據(jù)組成的有序序列
列表使用[ ]表示,采用逗號分隔各元素
[ 'F' , 'f' ]表示列表里含義兩個元素'F'和'f'
使用保留字in判斷一個元素是否在列表中
TempStr[-1] in ['C' , 'c']判斷前者是否與列表中的某個元素相同
賦值語句:由賦值符號構(gòu)成的一行代碼
賦值符號筆者之前提過,就是我們俗稱的等于號,但等于號在編程語言中通常表示賦值,不表示等于號的含義。
1、賦值語句用來給變量賦予新的數(shù)據(jù)值
C = (eval(TempStr[0:-1]) - 32)/1.8 #右側(cè)運(yùn)算結(jié)果值賦值給C
2、賦值語句右側(cè)的數(shù)據(jù)類型同時作用于變量
TempStr = input("請輸入帶有符號的溫度值: ") #input返回一個字符串,所以TempStr也是字符串
分支語句:由判斷條件決定程序運(yùn)行方向的語句
1 if TempStr[-1] in ['F', 'f']:
如果條件為True則執(zhí)行冒號后的語句
2、每個保留字所在行最后存在一個冒號:,是語法的一部分
冒號及后續(xù)縮進(jìn)用來表示后續(xù)語句與條件的所屬關(guān)系
函數(shù):根據(jù)輸入?yún)?shù)產(chǎn)生不同輸出的功能過程
類似于數(shù)學(xué)中的函數(shù),y=f(x)
print("輸入格式錯誤") #打印出 輸入格式錯誤
函數(shù)采用函數(shù)名(參數(shù))的方式使用
1 eval(TempStr[0:-1])#TempStr[0:-1]是參數(shù)
python的輸入輸出
input():從控制臺獲得用戶輸入的函數(shù)
input()函數(shù)的使用格式:
1 變量=input (提示信息字符串)
用戶輸入的信息以字符串類型保存在變量中
1 TempStr=input("請輸入") #TempStr保存用戶輸入的信息
輸出函數(shù)print()
以字符形式向控制臺輸出結(jié)果的函數(shù)
print()函數(shù)的基本使用格式
1 print(擬輸出字符串或字符串變量)
字符串類型的一對引號僅在程序內(nèi)部使用,輸出無引用
1 print("輸入格式錯誤")#向控制臺輸出 輸入格式錯誤
print函數(shù)的格式化:
1 print("轉(zhuǎn)換后的溫度是{:.2f}C".format(C))
{ }表示槽,后續(xù)變量填充到槽中
{:.2f}表示將變量C填充到這個位置時取小數(shù)點后2位
如果C的值是123.456789,則輸出結(jié)果為123.45C
評估函數(shù)eval():去掉參數(shù)最外側(cè)引號并執(zhí)行余下語句的函數(shù)
eval的基本使用格式
1 eval(字符串或字符串變量)
eval("1") 1
Python基本語法元素
縮進(jìn)
縮進(jìn)表達(dá)程序的格式框架
·嚴(yán)格明確:縮進(jìn)是語法的一部分,縮進(jìn)不正確程序運(yùn)行錯誤
·所屬關(guān)系:表達(dá)代碼間包含和層次關(guān)系的唯一手段
·長度一致:程序內(nèi)一致即可,一般用4個空格或1個TAB
注釋
不被程序執(zhí)行的輔助性說明信息
·單行注釋:以#開頭,其后內(nèi)容為注釋
·多行注釋:以'''開頭和結(jié)尾
相關(guān)推薦:《Python教程》
保留字(關(guān)鍵字)
被編程語言內(nèi)部定義并保留使用的標(biāo)識符,Python語言有33個保留字。
標(biāo)紅色的保留字較少用到
數(shù)據(jù)類型
字符串
由0個或多個字符組成的有序字符序列
·字符串的序號
·TempStr[0:-1]得到除最后一個字符的字符串(切片)
數(shù)字類型
整數(shù)和浮點數(shù)
列表類型
由0個或多個數(shù)據(jù)組成的有序序列
·列表使用[ ]表示,采用逗號,分隔各元素
·使用保留字 in 判斷一個元素是否在列表中
賦值語句
由賦值符號構(gòu)成的一行代碼
分支語句
由判斷條件決定程序運(yùn)行方向的語句
·每個保留字所在行最后存在一個冒號:
·冒號及后續(xù)縮進(jìn)用來表示后續(xù)語句與條件的所屬關(guān)系
函數(shù)
根據(jù)輸入?yún)?shù)產(chǎn)生不同輸出的功能過程,函數(shù)采用 函數(shù)名(參數(shù)) 方式使用
輸入輸出
輸入函數(shù) input()
·input():從控制臺獲得用戶輸入的函數(shù)
·變量 = input(提示信息字符串)
輸出函數(shù) print()
·print():以字符形式向控制臺輸出結(jié)果的函數(shù)
·格式化
把format()中的變量填進(jìn)去
評估函數(shù) eval()
去掉參數(shù)最外側(cè)引號并執(zhí)行余下語句的函數(shù)
網(wǎng)站標(biāo)題:python評估函數(shù),python評價分析
分享URL:http://jinyejixie.com/article38/hopcpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、建站公司、微信公眾號、自適應(yīng)網(wǎng)站、外貿(mào)建站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)