0

私はウィキブックスからPython2.6の非プログラマーチュートリアルから演習を行っています。

私はこのスクリプトを持っています:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

print("Program to calculate the area of square, rectangle and circle.")

def areaOfSquare():
    side = input("What is the length of one side of the square? ")
    area = side ** 2
    return area

def areaOfRectangle():
    width = input("What is the width of the rectangle? ")
    height = input("What is the height of the rectangle? ")
    area = 2*width+2*height
    return area

def areaOfCircle():
    radius = input("What is the radius of the circle? ")
    area = 3.14 * radius ** 2
    return area

geometry = input("What do you wan to calculate the area of? [S/C/R] ")

str(geometry)

if geometry == "S":
    areaOfSquare()
elif geometry == "R":
    areaOfRectangle()
elif geometry == "C":
    areaOfCircle()
else:
    print "Press S for square, C for circle and R for rectangle."

シェルで起こったことは次のとおりです。

prompt$ python script.py 
Program to calculate the area of square, rectangle and circle.
What do you wan to calculate the area of? [S/C/R] S
Traceback (most recent call last):
  File "allarea.py", line 22, in <module>
    geometry = input("What do you wan to calculate the area of? [S/C/R]")
  File "<string>", line 1, in <module>
NameError: name 'S' is not defined

同じことがとで起こりCますR

4

1 に答える 1

6

Python 2ではinput、ユーザーから文字列を取得して評価します。したがって、「S」と入力すると、存在しない「S」という名前を探して評価しようとします。

raw_inputの代わりに使用してくださいinput

はい、これはクレイジーでした。Python 3で修正され、raw_input現在は。という名前になっていinputます。

于 2012-07-26T01:35:49.727 に答える