这个问题很容易理解,这里是程序 -
hisc = [1,2,3,4]
print("\n", hisc)
ohisc = hisc
hisc.append(5)
print("\nPreviously...", ohisc)
print("\nAnd now...", hisc)
input("\nETE")
Run Code Online (Sandbox Code Playgroud)
当我运行它时ohisc获得5.为什么ohisc会改变?如何阻止它改变?如果这是显而易见的事情,请道歉.
如何更正此舍入功能?
def round_down(num, prec):
uod = round(num, prec)
if uod > num:
return uod - 1/10^prec
return uod
Run Code Online (Sandbox Code Playgroud)
它引发:TypeError:^:'float'和'int'的不支持的操作数类型.
我正在尝试解决 Project Euler 21,但我收到 KeyError: 0 这通常在您引用不存在的字典键时发生。但是,我认为我已经用 < 10000 条件解决了这个问题。该错误指的是 main() 函数中的第一个“if”语句。
sumsdivs = {}
for i in range(1, 10000):
tmpls = []
for j in range(1, i):
if i % j == 0:
tmpls.append(j)
sumsdivs[i] = sum(tmpls)
amls = []
def main():
for i in range(1, 10000):
if sumsdivs[i] < 10000 and sumsdivs[i] == sumsdivs[sumsdivs[i]]:
if sumsdivs[i] not in amls:
amls.append(sumsdivs[i])
if sumsdivs[sumsdivs[i]] not in amls:
amls.append(sumsdivs[sumsdivs[i]])
return sum(amls)
print(main())
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我可能在这里遗漏了一些明显的东西.使用以下代码:
class Thing():
def __init__(self, name):
self.name = name
that = Thing()
Run Code Online (Sandbox Code Playgroud)
我得到错误'init需要两个参数'.我认为'self'是参数之一,当我尝试通过将名称放在括号内来实例化对象时,我会得到其他错误.