1. 程式人生 > >Python入門100道習題(1)——求二次方程

Python入門100道習題(1)——求二次方程

題目描述

問題描述】

程式設計計算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的值是一個浮點數。