2.14学堂オンラインMITのpython問題、授業ノート

13706 ワード

間違った問題の収集
  • どのコンピュータでもできることは、計算を行い、結果を記憶すること
  • 平方根を推定する方法を本物のコンピュータプログラムにできないのは、yの初期値がコンピュータで推測できないから
  • プログラムカウンタは、プログラムが実行する次のコマンドを指す
  • 子列に意味があるかどうかを判断する静的意味Static sematics
  • 正当な文の意味を与えるSematics
  • roundは数字を絶対値大方向に整数intは数字を絶対値小方向に整数

  • temp = 120
    if temp > 85:
       print "Hot"
    elif temp > 100:
       print "REALLY HOT!"
    elif temp > 60:
       print "Comfortable" 
    else:
       print "Cold"
     #    ,            ,       Hot
    

  • temp = '32'
    if temp > 85:
       print "Hot"
    elif temp > 62:
       print "Comfortable" 
    else:
       print "Cold" 
    #           python      ,               ,              
    #     string     int 
    

  • var = 'Panda'
    if var == "panda":
       print "Cute!"
    elif var == "Panda":
       print "Regal!"
    else:
       print "Ugly..."
     #python             
    
  • ヒント:+=,-=,*=,/=は何を表しますか?これにより比較的容易に値を変更できる
  • a += b is equivalent toa = a + b
    a -= b is equivalent to a = a - b
    a *= b is equivalent to a = a * b
    a/= b is equivalent to a = a/b
  • 検証サイクル詳細に注意し、あるサイクルがうまくいかなかったために変数全体に影響を及ぼさないように、特にbreakが発生した場合

  • school = 'Massachusetts Institute of Technology'
    numVowels = 0
    numCons = 0
    
    for char in school:
        if char == 'a' or char == 'e' or char == 'i' \
           or char == 'o' or char == 'u':
            numVowels += 1  #      I   
        elif char == 'o' or char == 'M':
            print (char)
        else:
            numCons -= 1
    
    print ('numVowels is: ' + str(numVowels))
    print ('numCons is: ' + str(numCons))
    
    #       numVowels is:11
    #numCons is:-25
    

  • for variable in range(20):
        if variable % 4 == 0:
            print variable
        if variable % 16 == 0:
            print 'Foo!'
    #      ,range  0   ,       0       Foo!
    

  • #    range     ,        ,          range(10,0,-2)   
    # There are always many ways to solve a programming problem. Here is one:
    print "Hello!"
    for num in range(0, 10, 2):
        print 10 - num
    
    # Here is another:
    print "Hello!"
    for num in range(10, 0, -2):
        print num
    

  • "Hello, world!"
    #      ?,      ,12 ,      
    

  • count = 0
    phrase = "hello, world"
    for iteration in range(5):
        while True:
            count += len(phrase)
            break
        print "Iteration " + str(iteration) + "; count is: " + str(count)
    #      while  while
    

  • x = 25
    epsilon = 0.01
    step = 0.1
    guess = 0.0
    
    while guess <= x:
        if abs(guess**2 -x) < epsilon:
            break
        else:
            guess += step
    #        0     step    ,      epsilon   
    
    
    if abs(guess**2 - x) >= epsilon:
        print 'failed'   #      ,          ,    
    else:
        print 'succeeded: ' + str(guess)
    
    
  • 使用round()コマンドは四捨五入可能、0.5入0
  • round(0億5千万1)小数点以下16位入1
  • round(0.500000000000)入0可能後の1省略
  • 二重精度浮動小数点数が小数点以下でちょうど16位になったため有効と考えられる
  • 同じ行に出力するコツ
  • Python Trick: Printing on the same line
    Try the following in your console:
    
    # Notice how if we have two print statements                
    print "Hi"
    print "there"
    
    # The output will have each string on a separate line:                
    Hi
    there
                    
    # Now try ading a comma after the print statement:
    print "Hi",
    print "there"
                    
    # The output will place the subsequent string on the same line:
    Hi there