pythonfor的作用域
㈠ for循环的作用域问题
1. 在你的sum变量位置,sum还没被使用呢,一直是0不奇怪
2. 最后一次值temp才参与计算,这个理解完全正确,这个temp被双重for循环累加着,双重for循环结束后,temp里已经是你的结果了。
参考程序
#include<stdio.h>
int main(void)
{
int i,j,temp,sum,n;
sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
temp = 0; // 给temp清0,你的程序里没有清0,temp就一直往上涨
for(j=1;j<=i;j++)
temp=temp+j;
printf("%d\n\n",temp); //temp临时变量保存1+2+3+..+n的值
sum += temp;
}
printf("%d\n",sum); //存储最新结果
return 0;
}
㈡ for语句中i的作用域
Q1:i的作用域限于for循环的循环体内。
Q2:屏幕上输出1,因为使用的是第一行的int i=0,所定义的i;
㈢ for()语句中的变量的作用域问题
这样会报错的,说i没有定义,因为你i的定义在for循环中,所以只能在for中使用i变量,如果想在整个程序中都使用,请在循环外定义。
刚才在vc6.0中测试了,确实没有报错,但是i变量在出了for后就已经销毁了,这个是vc6.0的问题,在vc8中会报错。
作用域是在for后面大括号之间。
㈣ for循环与作用域的问题
1. 在你的sum变量位置,sum还没被使用呢,一直是0不奇怪
2. 最后一次值temp才参与计算,这个理解完全正确,这个temp被双重for循环累加着,双重for循环结束后,temp里已经是你的结果了。
参考程序
#include<stdio.h>
int main(void)
{
int i,j,temp,sum,n;
sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
temp = 0; // 给temp清0,你的程序里没有清0,temp就一直往上涨
for(j=1;j<=i;j++)
temp=temp+j;
printf("%d\n\n",temp); //temp临时变量保存1+2+3+..+n的值
sum += temp;
}
printf("%d\n",sum); //存储最新结果
㈤ python for循环作用域问题
你append(alien),意味着,你的aliens 里面装了20个 alien,并且这20个alien都是内存地址是一样的,也就是20个人共用一桶水,其中一个人把里面的水换成了啤酒,大家喝的只能是啤酒.
解决办法:
for aliens_number in range(20):
a=alien.()
aliens.append(a)
㈥ python 函数作用域问题,
类在定义的时候是有作用域的,这个作用域内的变量只能在 class 块内访问,而不能在类的方法(函数)中访问。
㈦ python变量的作用域到底怎么理解怎么用呢谢谢!
你可以 在 B页面 里面直接 调用 一下 函数
运行一下 ,你可以发现应该和 刚才 执行A 页面 报的是同样的错误;
这是 因为 在B 页面里面 并没有 s1List 这样一个数组
在运行A页面时,因为有了 from b import * ,python解释器就可以找的getS1和getS2这样的函数名;可以 在 import 之后 print dir() 来查看 当前作用域下可用的名字 ,可以看到 getS1 和getS2 都在其中
之所以 执行 A页面错误,是A页面调用 函数 getS1 时,在B页面中 执行 函数时找不到 s1List这个数组,因为在A 页面的那个 s1List 是不在 B页面的作用范围内的。