变量n作为for循环的上界

2024-06-29 00:10:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用for循环计算(1+1+1+…+1)^2的和,但是用一个变量n作为上界,这样求和就得到了一个函数f(n)=n^2。使用非负整数x作为输入,可以很容易地将循环编码为

p==0
def f(x):
    global p
    for i in range(0,x):
        p=p+1
    return p**2

我想给这种循环输入一个字符串n。这是否可行(有或没有修改)?我一定要把弦转换成交响乐吗?你知道吗

编辑:哇,我把这个问题写得很糟糕。我猜睡眠毕竟很重要

假设我有一个函数f(x),其中

f(1) = 1  
f(2) = f(1+1) = (1+1)^2 = 4  
f(3) = f(1+2*1) = (1+2)^2 = 9

那么,f(n)就是

f(n) = f(1+(n-1)*1) = (1+(n-1))^2 = n^2

如果我用上面的for循环计算结果(这是由于睡眠不足造成的混乱),我会输入f(1),f(2),f(3),。。。到上面的for循环。我在问是否可以在上面的for循环中输入n,不管是否修改,然后得到n^2。你知道吗

(f(1),f(2),。。。这和我现在遇到的问题不一样——我只是想知道这个想法是否可行,如果可行,怎么可能。如果我直接问这个问题,我什么也学不到,是吗?)你知道吗

edit2:上述算法的输入/输出示例:

(整数输入)

f(1) = 1^2
f(2) = 2^2
f(423) = 423^2

(浮动输入)

f(0.5) = (0.5)^2
f(1.5) = (1.5)^2
f(234.23) = (234.23)^2

(字符串输入-不首先为这些字符串指定整数/浮点值)

f(a) = a^2
f(df) = (df)^2
f(the_speed_of_an_unladen_swallow) = (the_speed_of_an_unladen_swallow)^2

我的目标是对上面的循环进行修改,以便我可以这样做,对于f(a),其中f是上面的函数:

def g(a):
    return f(a)

或其等效物。你知道吗

我要把这个留在这里,因为我现在看起来不像一个睡眠不足的大学生,更像一个睡眠不足的智障大学生。你知道吗


Tags: ofthe函数字符串andfforreturn
2条回答

你写道:

(String input - without assigning integer/float values to these strings first)

f(a) = a^2
f(df) = (df)^2
f(the_speed_of_an_unladen_swallow) = (the_speed_of_an_unladen_swallow)^2

因此,有一些变量(adfthe_speed_of_an_unladen_swallow),它们在调用f时还不包含(好的)值。稍后,它们会有一个数值,您希望在函数中循环多次。你知道吗

由于具有基元数据类型的变量是按值传递的,因此必须传递变量的名称才能执行类似的操作。你知道吗

也许这就是你要找的东西?你知道吗

def f(x):
    def localF():
        return globals()[x]**2  # loop could be here, but this is the essence
    return localF

# n does not have its value yet   
n = None

# call f: it should not produce the result yet, as n is not correctly set yet
g = f('n')

# set n to its intended value
n = 5;

# Call the function we got from f:
print (g());

# output is 25.

你想做类似def('123')的事情吗?你知道吗

如果是这样,请在range中使用字符串之前将其强制转换为int,如下所示:

for i in range(0,int(x)):

相关问题 更多 >