- 百道Python入门级练习题(新手友好)第八回合——求二次方程
- 百道Python入门级练习题(新手友好)第三回合——求月份天数
- 百道Python入门级练习题(新手友好)第七回合——求x**3
- 百道Python入门级练习题(新手友好)第四回合——求矩阵各列最
- 百道Python入门级练习题(新手友好)第九回合——split方
- 百道Python入门级练习题(新手友好)第一回合——矩阵乘法
- 百道Python入门级练习题(新手友好)第十回合——遍历列表
- 百道Python入门级练习题(新手友好)第五回合——换散币
- 百道Python入门级练习题(新手友好)第二回合——找对称数
- 百道Python入门级练习题(新手友好)第六回合——五位数数位
题目描述
问题描述】
编程计算y=x2+3x-5。要求从键盘输入x的值,输出y的值。
【输入形式】
输入实数x的值
【输出形式】
输出y的值
【样例输入】
1
【样例输出】
-1
错误解法
x = input()
y = x * x + 3 * x - 5
print(y)123
我运行以上程序后,得到以下错误信息。
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 = xx + 3x - 5
print(y)123
第1行代码,先执行input()函数,返回字符串,然后调用float()函数,把字符串转换为浮点数(对应数学上的实数),最后赋值给变量x。这样,第1行代码执行后,变量x的值是一个浮点数。
网友评论