带函数的回溯输出
Traceback Output with functions
正如您从我的代码中看到的那样,我正在尝试创建一个地毯安装服务程序!但是我不确定为什么它在到达第二个功能时会停止!你能分析我的代码并告诉我哪里出了问题吗?我担心您只有在看到其余代码后才能理解我的问题。请记住,我是一个非常新的初学者。
问题(在代码中 - 我找不到它):
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
>>>
当我 运行 通过您的代码时,有两个 主要 错误立即引起了我的注意:
- 变量 scope 问题。
- 属性名称覆盖问题。
您正在 nor
呼叫 range
。我可以看到你打算在函数 nor
内部定义的变量 nor
上调用它,而不是函数本身。
有两个直接的解决方案,要么在上面的范围内(您定义所有其他变量的地方)创建一个名为 nor_val
的变量(或不同于 nor
的任何变量);并在 nor
函数中更新该变量并在 range
调用中使用它。第二种选择是在执行结束时使 nor
函数 return 具有 nor
属性,而不是调用 range(nor)
,而是调用 range(nor())
。
在第一种情况下,您可以在声明属性的地方添加类似 nor_val = 0
的行,然后将 nor
的所有实例替换为变量(而非函数) nor_val
.
在第二种情况下,您可以在 nor
函数的末尾添加类似 return nor
的行,并将 range(nor)
更改为 range(nor())
。
但是,在这两种情况下,您的变量命名都不是很直观。您应该尽量不要重复使用名称,因为它们可能会导致此类混淆。您的 nor
函数没有描述该函数的实际作用。我可能会称它为 get_number_rooms
或类似的东西,我会称 nor
变量为 rooms
.
正如您从我的代码中看到的那样,我正在尝试创建一个地毯安装服务程序!但是我不确定为什么它在到达第二个功能时会停止!你能分析我的代码并告诉我哪里出了问题吗?我担心您只有在看到其余代码后才能理解我的问题。请记住,我是一个非常新的初学者。
问题(在代码中 - 我找不到它):
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
>>>
当我 运行 通过您的代码时,有两个 主要 错误立即引起了我的注意:
- 变量 scope 问题。
- 属性名称覆盖问题。
您正在 nor
呼叫 range
。我可以看到你打算在函数 nor
内部定义的变量 nor
上调用它,而不是函数本身。
有两个直接的解决方案,要么在上面的范围内(您定义所有其他变量的地方)创建一个名为 nor_val
的变量(或不同于 nor
的任何变量);并在 nor
函数中更新该变量并在 range
调用中使用它。第二种选择是在执行结束时使 nor
函数 return 具有 nor
属性,而不是调用 range(nor)
,而是调用 range(nor())
。
在第一种情况下,您可以在声明属性的地方添加类似 nor_val = 0
的行,然后将 nor
的所有实例替换为变量(而非函数) nor_val
.
在第二种情况下,您可以在 nor
函数的末尾添加类似 return nor
的行,并将 range(nor)
更改为 range(nor())
。
但是,在这两种情况下,您的变量命名都不是很直观。您应该尽量不要重复使用名称,因为它们可能会导致此类混淆。您的 nor
函数没有描述该函数的实际作用。我可能会称它为 get_number_rooms
或类似的东西,我会称 nor
变量为 rooms
.