我的程式提示用戶輸入一個球體的體積。這是我要嘗試的輸入示例之一:
我的程式提示用戶輸入球體的體積。
- 1.4*1.0e6
- 1.4*1.0e6 。
這是我現在的提示內容。volume = float(input("Enter volume of sphere in mm^3: " ))/code>
而且我得到了這個錯誤。ValueError: could not convert string to float: '1.4*1.0e6'/code>
為什么當我直接分配一個變數的值時,如a = 1.4*1.0e6,它是一個浮點數,但當用戶輸入時,它是一個字串?我如何將其轉換為浮點數?是否有任何內置函式可以做到這一點?
很抱歉我的英語不好,謝謝你。
uj5u.com熱心網友回復:
ValueError: could not convert string to float: '1.4*1.0e6'
最簡單的方法是用eval
volume = eval(input("Enter volume of sphere in mm^3: " ))
CodePudding
對于將字串轉換為浮點數,你可以使用float()。 Eg.float('1.2123') 你不能將'*'轉換成float,因為它是一個運算子,這就是為什么會出現錯誤。
#observe the code。
volume = float(input("輸入球體的體積(mm^3):")
input() = 從用戶那里獲取輸入并將其存盤在字串中
float() = 用來將字串轉換為浮點數你的代碼是 volume = float(input("Enter volume of sphere in mm^3: " ))。首先input()從用戶那里獲取字串輸入,然后float()將其轉換為浮點數。
但是a = 1.4*1.0e6沒有涉及input()函式,所以它是一個浮點數。
你可以簡單地通過以下方式實作你的作業
volume = eval(input("enter volume of sphere in mm^3: " /span>)
或者
volume = input("Enter volume of sphere in mm^3: ") .split("*")
volume = float(volume[0])*float(volume[1] )
split(separator)- 它通過用戶提供的分隔符將一個字串分割成一個子字串陣列
。你可以從這里讀到關于eval的內容:- 從這里閱讀關于eval()的內容
。uj5u.com熱心網友回復:
s = '10.5674'
f = float(s)
print(type(f))
print('Float Value ='/span>, f)
輸出:
<class 'float' >
Float Value = 10.5674。
這樣你就可以將字串轉換為浮點數。另外,在你的例子中,你在數字之間寫了*,所以它不能以適當的方式轉換。你必須在不同的變數中分配浮點數,然后進行操作。
uj5u.com熱心網友回復:
要將一個字串轉換為浮點數,該字串應該由一個浮點陣列成。
在你的例子中,它是一個2個浮點數的乘法。
嘗試一下:
eval('1.4*1.0e6')
這將給你一個浮點數,因為它評估了字串并做了乘法運算。
如果用戶輸入的是'1.4e6',那么浮點數就會起作用:
嘗試:float('1.4e6'/span>)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/319979.html
標籤:
上一篇:尋找到達給定坐標所需的最小速度?
