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的值是一个浮点数。

发布了85 篇原创文章 · 获赞 86 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/yedouble/article/details/81873786