--这是我要运行的python脚本:
n = 50000000000 ##50 billion
b = [0]*n
for x in range(0,n):
b[x] = random.randint(1,899999)
..。但我得到的输出是:
E:\python\> python sort.py
Traceback (most recent call last):
File "E:\python\sort.py", line 8, in <module>
b = [0]*n
MemoryError
那我现在该怎么办?
我想使用python的函数式编程功能在python中构建一个while循环,但到目前为止,我一直在失败。
我所完成的是代码的平静,它应该计算最小的数,可以被数字1到20中的每一个除以。但是它看起来并没有经常使用函数式编程功能。并给出了以下错误:
"RuntimeError:最大递归深度超过“在增加”i“的行;
即使这应该限制在20。
def byYmult(x, y): return x % y == 0
def first20div():
i=0
for y in range(1,20):
i += byYmult(x, y)
retu
在python中,我运行以下简单代码:
print('number is %.15f'%1.6)
它工作得很好(输出:number is 1.600000000000000),但是当我将小数位取到16>=时,我在末尾开始获得随机数。例如:
print('number is %.16f'%1.6)
输出:number is 1.6000000000000001和
print('number is %.20f'%1.6)
输出:number is 1.60000000000000008882
这与计算机计算数字的方式有关吗?
编辑:感谢所有的回
我最近专注于Python,我发现了一个我找不到答案的练习。我应该找到第四个数,它的除数等于相加后的数,但我只想找一个能找到尽可能多的数。
到目前为止,这是我的代码,但我找不出哪里错了:
new_list = []
for dividend in range(1, number+1):
for divisor in range(1, dividend):
if (dividend % divisor) == 0:
if divisor in new_list:
pass
else:
C++: #include <iostream>
using namespace std;
void factorial(int a){
int f = 1;
for(int i = 1;i<=a; i++){f*=i;};
cout << f << endl;
}
int main()
{
factorial(number);
} Python: def factorial(a):
f=1
for i in range(1,a+1):
f*=i
return f
n=st
因此,我正在阅读这个PDF教程,名为“学习Python第四版”。现在我谈到了一个我不明白的部分,因为我几乎是Python的初学者。我指的是这部分:
现在我不明白第一个例子的解释了。上面写着:It turns out that there are two ways to print every object: with full precision(as in the first result shown here)
但是这个with full precision怎么样?
对于文本中的python程序员来说,它可能很容易解释,但我似乎不明白。
我似乎在使用sublimeREPL运行python代码时遇到了问题,用户输入了崇高的文本2。我有一段可以在命令提示符中使用的代码,不能在REPL中执行。错误似乎是REPL无法处理输入的格式并假设它是字符串。我的python是相当有限的,所以是否有一种方法可以让REPL对我的代码很好,或者我需要指定输入?
注意:每次将tempInput转换为int将有效,但很繁琐。
“守则”:
# Matthew P
# A program to calculate average grades
def avg(total, elements):
return total / elements
te
编辑:我正在重新做这个问题。这个问题与time.time()无关
以下是一个程序:
import time
start=time.time()
a=9<<(1<<26) # The line that makes it take a while
print(time.time()-start)
该程序保存为文件,并在Python3.4中以空闲方式运行,花费大约10秒时间,尽管0.0是从time.time()打印出来的。这个问题对于空闲来说是非常清楚的,因为当从命令行运行时,这个程序几乎不需要花时间。
另一个具有同样效果的程序,正如senshin所
我试图使用python计算给定数字中的位数:
def countBit(self, n: int) -> int:
l=[int(d) for d in str(n)]
return(sum(l))
给这个函数的输入是0000000000000000000000001011,预期的输出是3,但我得到2作为输出。
你能给我建议一种方法吗?