Python noni公司

2024-09-27 07:30:13 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,我已经为这个问题绞尽脑汁好几天了,但我还是弄不明白,我一直有这个问题:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 44, in <module>
  File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 35, in main
  File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 15, in __init__
builtins.TypeError: can't multiply sequence by non-int of type 'float'

一遍又一遍。我想我已经碰壁了,我真的做了一些调查和测试,但如果有人能给我指出正确的方向,我将不胜感激。在

^{pr2}$

Tags: inpydebugsrcmostlinefilesprogram
1条回答
网友
1楼 · 发布于 2024-09-27 07:30:13

输入函数返回字符串,而不是数字类型。您需要根据需要先将它们转换为整数或浮点。在

我想你看到的错误是当你试图计算θ时。将pi(一个浮点数)乘以角度(它包含一个字符串)。这个消息告诉你你不能用一个浮点数乘以一个字符串,但是你可以用一个整数乘以一个字符串(例如,"spam" * 4给你"spamspamspamspam",但是{}没有意义。)不幸的是,这不是一个非常有用的信息,因为对你来说,不是pi是错误的类型,而是角度,它应该是一个数字。在

您应该能够通过更改getInputs来解决此问题:

def getInputs():
    a = float(input("Enter the launch angle (in degrees): "))
    v = float(input("Enter the initial velocity (in meters/sec): "))
    h = float(input("Enter the initial height (in meters): "))
    t = float(input("Enter the time interval between position calculations: "))
    return a,v,h,t

我还应该注意到,这是Python2.*和Python3.*具有不同行为的区域。在python2.*中,input读取一行文本,然后将其作为Python表达式求值,而raw_input读取一行文本并返回一个字符串。在Python3.*中,input现在执行raw_input之前所做的-读取一行文本并返回一个字符串。虽然“将其作为表达式求值”行为对于简单的示例可能很有帮助,但对于除小示例之外的任何情况都是危险的。用户可以输入任何表达式并对其进行求值,这可能会对您的程序或计算机执行各种意外的操作。在

相关问题 更多 >

    热门问题