인간 과 컴퓨터 의 대화 프로그램 python
# hello.py
# 。 Pickle, 。
# ( )
import pickle
import os.path
def search(x, data):
for k, d in enumerate(data):
if x == d['name']:
return k, d
def save_data(A,pklname):
with open(pklname, 'wb') as pkl:
pickle.dump(A, pkl)
def load_data(pklname):
with open(pklname, 'rb') as pkl:
return pickle.load(pkl)
# communicating with computer
data=[] if not os.path.isfile('data') else load_data('data')
while True:
print('Welcome! [type "quit" if you want to quit.]')
name=input('--What is your name?
--')
if name in {'quit','Quit','q','Q'}:
print('[You quit]')
break
if not search(name, data):
print('--Welcome, '+name+ '. I will remember you name.')
d={'name':name,'age':0,'history':[]}
data.append(d)
else:
print('--Hi, '+name+'. How I miss you.')
k, d=search(name, data)
while d['age']==0:
age=input('--How old are you?[I will repeat until you respond!]')
try:
if int(age)==0: continue
d['age']=int(age); data[k]=d
except:
pass
while True:
y=input('--Chan I help you? [yes/no]')
while not y:
y=input('--Yes or no?')
d['history'].append(y); data[k]=d
if y in {'no','No','n','N'}:
print('--%s.'%y)
print('--Bye bye.')
break
elif y in {'yes','Yes','y','Y'}:
print('--%s.'%y)
print('I am pleased to serve you.')
else:
print('I am sorry. I can not understand what you said.')
break
# save data
y=input('--Do you want to save the data? [yes/no]')
while not y:
y=input('--Yes or no?')
if y in {'no','No','n','N'}:
print('--%s. [You say no.]'%y)
elif y in {'yes','Yes','y','Y'}:
print('--%s. [the data is saved in file named "data".]'%y)
save_data(data, 'data')
else:
print('I am sorry. I can not understand what you said. data are not saved.')
다음은 hello.py 대상 프로 그래 밍 버 전(추천)
# hello.py
import pickle
import os.path
def search(x, data):
for k, d in enumerate(data):
if x == d['name']:
return k, d
class Hello:
def __init__(self, name='', data=None):
self.name = name
self.data = data
def __getstate__(self):
return self.data
def __setstate__(self, data):
self.data = data
def mainloop(self):
while True:
print('Welcome! [type "quit" if you want to quit.]')
name=input('--What is your name?
--')
if name in {'quit','Quit','q','Q'}:
print('[You quit]')
break
if not search(name, self.data):
print('--Welcome, '+name+ '. I will remember you name.')
d={'name':name,'age':0,'history':[]}
self.data.append(d)
else:
print('--Hi, '+name+'. How I miss you.')
k, d=search(name, self.data)
while d['age']==0:
age=input('--How old are you?[I will repeat until you respond!]')
try:
if int(age)==0: continue
d['age']=int(age); self.data[k]=d
except:
pass
while True:
y=input('--Chan I help you? [yes/no]')
while not y:
y=input('--Yes or no?')
d['history'].append(y); self.data[k]=d
if y in {'no','No','n','N'}:
print('--%s.'%y)
print('--Bye bye.')
break
elif y in {'yes','Yes','y','Y'}:
print('--%s.'%y)
print('I am pleased to serve you.')
else:
print('I am sorry. I can not understand what you said.')
break
# save data
y=input('--Do you want to save the data? [yes/no]')
while not y:
y=input('--Yes or no?')
if y in {'no','No','n','N'}:
print('--%s. [You say no.]'%y)
elif y in {'yes','Yes','y','Y'}:
print('--%s. [the data is saved in file named "data.pkl".]'%y)
with open('data.pkl', 'wb') as fo:
pickle.dump(self, fo)
else:
print('I am sorry. I can not understand what you said. data are not saved.')
# communicating with computer
try:
with open('data.pkl', 'rb') as fo:
hello=pickle.load(fo)
except:
hello=Hello('ai',[])
hello.mainloop()
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.