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頁面的作用范圍內的。