首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当无限的时候?

当无限的时候?
EN

Stack Overflow用户
提问于 2015-08-13 21:48:15
回答 2查看 34关注 0票数 1

我正在试着写一个程序,你可以输入一个数字,然后你想要它乘以多少,还有多少次。在此之后,您可以选择您想要的#步骤以及该步骤的编号:

代码语言:javascript
复制
numbr= int(raw_input("pick a number: "))
mult= int(raw_input("keep multiplying by what: "))
listy= []
ff= 1

while x < 999999999999999999999999999: 
    numbr *= mult
    listy.append(x)
    ff += 1

cc = int(raw_input("what number do you want: "))
print listy[cc-2]

目前它只上升到这么大的数字。我怎样才能让它输出用户想要的任何# step?如果我这样做,而x> 1,那么它只是加载,甚至不允许用户输入他们想要的内容。我能做什么?

EN

回答 2

Stack Overflow用户

发布于 2015-08-13 22:16:33

首先,计算机内存是有限的,你通常应该避免使用超过你绝对需要的内存。特别是在这个问题上,你根本不需要中间值-如果你只需要一个数字,为什么要列出一个列表呢?

另外,一些关于风格的随机评论:试着让变量变得不言自明,必要时避免跳过字母或缩写。无论如何,我们来看一个如何做到这一点的例子:

代码语言:javascript
复制
number= int(raw_input("pick a number: "))
multiplier = int(raw_input("keep multiplying by what: "))
times = int(raw_input("multiply how many times: "))

x = 0
while x < times:
    number *= multiplier
    x += 1

print(number)

不过,有一件事你不必使用while循环,因为for _ in range(times)同样可以完成这项工作,而且更具可读性。这里的_是一个变量名,通常用于我们不需要的值,例如"discard“变量,因此代码变成:

代码语言:javascript
复制
number= int(raw_input("pick a number: "))
multiplier = int(raw_input("keep multiplying by what: "))
times = int(raw_input("multiply how many times: "))

for _ in range(times):
    number *= multiplier

print(number)

此外,如果你观察你正在做的数学运算,就有可能进一步降低代码的复杂性,因为你可以有效地将一个数字乘以另一个数字的幂,例如原始代码中的numbr * mult^cc。由于在Python语言中,power运算符是**,因此最终代码为:

代码语言:javascript
复制
number= int(raw_input("pick a number: "))
multiplier = int(raw_input("keep multiplying by what: "))
times = int(raw_input("multiply how many times: "))
print(number * multiplier ** times)

我发布的代码与您的略有不同,因为它没有将原始数字作为我们序列的一部分,但是,我将把它留给您作为练习,因为它不是很难;)

票数 1
EN

Stack Overflow用户

发布于 2015-08-13 22:06:19

每次将一个数字相乘时,都是将其追加到列表中。您的列表正在跟踪所有9999999999999999999999999999999条目。随着条目变得越来越大,每个条目都会占用更多的内存空间。一个常规的int将从8位开始。

你应该让程序采取用户想要的任何步骤,并使用公式来计算它,而不是生成到那时为止的所有值。我想公式应该是: number * mult^cc。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31990097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档