Changes between Version 1 and Version 2 of PythonIntroFor


Ignore:
Timestamp:
09/08/06 07:54:15 (13 years ago)
Author:
sgk
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PythonIntroFor

    v1 v2  
    66{{{ 
    77#!c 
     8/* C言語 */ 
    89for (初期設定; 終了条件; 更新処理) { 
    910  処理; 
     
    1314{{{ 
    1415#!c 
     16/* C言語 */ 
    1517for (int i = 0; i < 100; ++i) 
    1618  printf("%d\n", i); 
     
    2123{{{ 
    2224#!python 
     25# Python 
    2326for i in range(100): 
    2427  print "%d\n" % i 
     
    4043{{{ 
    4144#!python 
     45# Python 
    4246>>> for x in (1, 2, 3): 
    4347...   print x 
     
    5155{{{ 
    5256#!python 
     57# Python 
    5358>>> for c in 'abc': 
    5459...   print c 
     
    5964>>> 
    6065}}} 
     66 
     67それでは、C言語の''テクニック''だったような、単純な順序処理ではない`for`文はどうやって書いたらいいんでしょうか。つまりこういうやつです。 
     68{{{ 
     69#!c 
     70/* C言語 */ 
     71char* s = "abcde"; 
     72for (p = &s[0]; *p; ++p) 
     73  printf("%c\n", *p); 
     74}}} 
     75あるいはこんな、リストをたぐる処理(構造体の宣言は省略しています)。 
     76{{{ 
     77#!c 
     78/* C言語 */ 
     79char* list_head = ...; 
     80for (p = list_head; p; p = p->next) { 
     81  なんかの処理; 
     82} 
     83}}} 
     84 
     85こういう、'''単純な順序処理ではない処理は`for`文では書かない'''のがPythonのルールです。 
     86あるいは、`yield`を使ってジェネレータを作るというテはありますが、ここでは省略します。