코드는 매우 간단합니다. 그러나 프로그램의 주요 부분에서 무한히 첫 번째 예외를 제공합니다. 사용자 입력을 묻지 않고도 raw_input
- 의 첫 번째 입력에서 사용해야한다고 가정합니다. 일반적인 언어의 좋은 이해와 초보자 - 어떤 아이디어? 감사왜 파이썬에서 raw_input으로 무한 루프가 발생합니까?
import re,sys
#program to take details of people name, address and telephone number from user
#user must specify number of people first
class details:
def __init__(self,name=None,address=None,tel=None):
self.name=name
self.address=address
self.tel=tel
def changeAttribute(self,name=None,address=None,tel=None):
if name!=None:
self.name=name
if address!=None:
self.address=address
if tel!=None:
self.tel=tel
class main():
peopleList =[]
a=1
while a==1:
try:
numOfPeople = raw_input("enter number of people:")
if re.search('[^0-9\n]', numOfPeople):
raise Exception
except (Exception):
print ("illegal input ,must only be numbers - Please try again")
else:
numOfPeople=str(numOfPeople)
a=0
for i in range(0,numOfPeople):
x=1
while x==1:
try:
name=raw_input("Please enter name")
if re.search('[^a-zA-Z\n]',name):
raise Exception
except (Exception):
print("illegal name - Please use only letters")
else:
peopleList.extend(details(name))
x=0
x=1
while x==1:
try:
address=raw_input("Please enter address")
if re.search('[^a-zA-Z\n]',address):
raise Exception
except (Exception):
print("illegal name - Please use only letters")
else:
peopleList[-1].changeAttribute(None,address,None)
x=0
x=1
while x==1:
try:
tel=raw_input("Please enter telephone number")
if re.search('[^0-9]',tel):
raise Exception
except (Exception):
print("illegal name - Please use only numbers")
else:
peopleList[-1].changeAttribute(None,address,None)
x=0
왜 메소드 정의가없는'class main()'을 가지고 있습니까? 그것은 대신 함수 여야 하는가? –
"프로그램의 주요 부분에서 첫 번째 예외"란 무엇입니까? 실제 오류 메시지를 게시하십시오. – BrenBarn
^당신은 다른 파이썬 사용자가 읽을 수 있도록 당신의 클래스에 UsingCamelCase라는 이름을 붙여야한다. 그냥 문제가되지 않습니다. 그냥 –