'Python基礎找茬系列03--int()與eval()的羈絆'

Python Python大星 2019-08-06
"
"
Python基礎找茬系列03--int()與eval()的羈絆

>>上一茬《python基礎找茬系列02--'=='與'is'的區別,別傻傻分不清楚》

一、描述

1、int()函數

int()函數用於將一個字符串或數字轉換為整型。

2、eval()函數

eval()函數用來執行一個字符串表達式,並返回表達式的值。

二、語法

1、int()函數

語法

以下是 int() 方法的語法:

int(x, base=10)

參數

  • x -- 字符串或數字。
  • base -- 進制數,默認十進制。

返回值

  • 返回整型數據(十進制)

2、eval()函數

語法

以下是 eval() 方法的語法:

eval(expression[, globals[, locals]])

參數

  • expression -- 表達式。
  • globals -- 變量作用域,全局命名空間,如果被提供,則必須是一個字典對象。
  • locals -- 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。

返回值

  • 返回表達式計算結果。

三、實例對比

1、int()函數

>>>int() # 不傳入參數時,得到結果0
0
>>> int(3)
3
>>> int(3.6)
3
>>> int('12',16) # 如果是帶參數base的話,12要以字符串的形式進行輸入,12 為 16進制
18
>>> int('0xa',16)
10
>>> int('10',8)
8

2、eval()函數

>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85

四、總結

1、eval()第一個參數must be a string, bytes or code object,會把比如'2+2'作為表達式求值輸出4,而int()調用int('2+2')會報錯;

2、int支持不同進制轉換為10進制,eval()不支持;

3、針對小數字符串(比如'3.2'),int()調用失敗,eval輸出3.2,類型為float。

"
Python基礎找茬系列03--int()與eval()的羈絆

>>上一茬《python基礎找茬系列02--'=='與'is'的區別,別傻傻分不清楚》

一、描述

1、int()函數

int()函數用於將一個字符串或數字轉換為整型。

2、eval()函數

eval()函數用來執行一個字符串表達式,並返回表達式的值。

二、語法

1、int()函數

語法

以下是 int() 方法的語法:

int(x, base=10)

參數

  • x -- 字符串或數字。
  • base -- 進制數,默認十進制。

返回值

  • 返回整型數據(十進制)

2、eval()函數

語法

以下是 eval() 方法的語法:

eval(expression[, globals[, locals]])

參數

  • expression -- 表達式。
  • globals -- 變量作用域,全局命名空間,如果被提供,則必須是一個字典對象。
  • locals -- 變量作用域,局部命名空間,如果被提供,可以是任何映射對象。

返回值

  • 返回表達式計算結果。

三、實例對比

1、int()函數

>>>int() # 不傳入參數時,得到結果0
0
>>> int(3)
3
>>> int(3.6)
3
>>> int('12',16) # 如果是帶參數base的話,12要以字符串的形式進行輸入,12 為 16進制
18
>>> int('0xa',16)
10
>>> int('10',8)
8

2、eval()函數

>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85

四、總結

1、eval()第一個參數must be a string, bytes or code object,會把比如'2+2'作為表達式求值輸出4,而int()調用int('2+2')會報錯;

2、int支持不同進制轉換為10進制,eval()不支持;

3、針對小數字符串(比如'3.2'),int()調用失敗,eval輸出3.2,類型為float。

Python基礎找茬系列03--int()與eval()的羈絆

python3,你值得擁有!

>>下一茬《python基礎找茬系列04--那些傻傻分不清楚的time庫函數》

"

相關推薦

推薦中...