Python入門100道習題(1)——求二次方程
阿新 • • 發佈:2018-12-31
題目描述
問題描述】
程式設計計算y=x2+3x-5。要求從鍵盤輸入x的值,輸出y的值。
【輸入形式】
輸入實數x的值
【輸出形式】
輸出y的值
【樣例輸入】
1
【樣例輸出】
-1
錯誤解法
x = input()
y = x * x + 3 * x - 5
print(y)
我執行以上程式後,得到以下錯誤資訊。
Traceback (most recent call last):
File “C:/Users/612226/PycharmProjects/pythonSamples/cgProblems/chap02/2-7-二次方程錯誤示例.py”, line 2, in
y = x * x + 3 * x - 5
TypeError: can’t multiply sequence by non-int of type ‘str’
上述錯誤資訊中,”line 2”表明錯誤發生在第2行。
錯誤分析
錯誤在於:第1行程式碼呼叫input()函式,返回的是字串,這使得變數x的值是一個字串。在第2行程式碼中,字串值參與乘法運算,錯!
正確解法
x = float(input())
y = x*x + 3*x - 5
print(y)
第1行程式碼,先執行input()函式,返回字串,然後呼叫float()函式,把字串轉換為浮點數(對應數學上的實數),最後賦值給變數x。這樣,第1行程式碼執行後,變數x的值是一個浮點數。