正如您在我的代码中所看到的,我正在尝试创建一个地毯配件服务程序!但我不知道为什么它到达第二个功能时会停止!你能分析我的代码并试着告诉我出了什么问题吗?我担心如果你看到剩下的代码,你只会理解我的问题。请记住,我是一个非常新的初学者。
问题(在代码中 - 我无法找到它):
https://pastebin.com/SWMYEAfE
输出:
This is Carpet Diem Carpets and we hope we are able to help you today!
We first need your personal details, so can you please choose your title.
Mr, Mrs, Miss, Ms, Dr, Lady or Lord?Lord
Well, what is your last name, Lord?
>>Test
Here at Carpet Diem Carpets...
We offer a variety of different levels of quality -
With varying prices, of course, Lord Test!
We can fit your carpets at £6.50 per square meter - the Basic level.
Standard for £18.75.
And, for those who like to live as the very best, Luxury for £29.50!
There is also a 3.75 fee per square meter.
How many rooms do you want 'carpeted'?
>>3
Traceback (most recent call last):
File "C:\Users\mikec\OneDrive - Ilford County High School\Computing HW.py", line 144, in <module>
loopquality()
File "C:\Users\mikec\OneDrive - Ilford County High School\Computing HW.py", line 28, in loopquality
for x in range(nor):
TypeError: 'function' object cannot be interpreted as an integer
>>>
答案 0 :(得分:1)
在我运行代码时,有两个主要的错误立刻突显出来:
您正在range
上致电nor
。我可以看到你打算在函数nor
内部定义的变量nor
上调用它而不是函数本身。
有两种直接的解决方案,要么在上面的范围内创建一个名为nor_val
的变量(或者与nor
不同的变量),那么你定义了所有其他变量;并在nor
函数中更新该变量,并在range
调用中使用它。第二个选项是让nor
函数在执行结束时返回nor
属性,而不是调用range(nor)
,而是调用range(nor())
。
在第一种情况下,您将添加一行,例如nor_val = 0
,您要声明属性,然后将nor
的所有实例替换为nor_val
,表示变量(不是函数){{1} 1}}。
在第二种情况下,您需要在return nor
函数的末尾添加nor
之类的行,并将range(nor)
更改为range(nor())
。
但是,在这两种情况下,您的变量命名都不是很直观。您应该尝试不重用名称,因为它们可能会导致此类混淆。您的nor
函数未描述函数实际执行的操作。我可以称之为get_number_rooms
或类似的东西,我会将nor
变量称为rooms
。