import ollama
def ask_question(question):
response = ollama.chat(
model="llava:7b",
# 리스트 안에 dic을 사용
messages=[
{
'role': 'user',
'content': question
}
]
)
return response['message']['content']
data = input("커피종류 알려줘")
result = ask_question("커피종류 알려줘")
result = ask_question("대한민국 서울의 한강 정보를 알려줘")
result = ask_question("AI시대 챗GPT 장점과 단점을 알려줘")
print(result)
mysite = dict() # 좀더 직관적
mysite['naver'] = 'www.naver.org'
mysite['kakao'] = 'www.kakao.org'
mysite['python'] = 'www.python.org'
# 새로운 항목 추가하기 add, insert, append 지원안됨
mysite['Google'] = 'www.google.com'
# 기존 키값을 사용하면 어떻게 되는지
mysite['naver'] = 'www.naver.com'
# 키값을 이용하여 출력
print(mysite['kakao']) # 딕트는 키값을 쓸때 리스트처럼 씀
# get함수 사용하기
print(mysite.get('kakao'))
print(mysite.get('kakeo')) # None이 출력됨
# in함수로 키값 확인하기
print('naver' in mysite) #True, False
# 삭제하기
del mysite['kakao']
mysite.pop('python')
# 전체 삭제
mysite.clear()
mysite = {
'naver' : 'www.naver.org',
'kakao' : 'www.kakao.org',
'python' : 'www.python.org'
}
# 반복문을 이용해서 출력하기
# 1번째 방법
for k in mysite:
print(k, '|', mysite[k])
# 2번째 방법
print('for (i,e) in enumerate(mysite)')
for (i,e) in enumerate(mysite): # i제거시 에러 발생
print(i, e, '|', mysite[e]) # i가 순서의 역할을 함
# 3번째 방법
print('for k,v in mysite.items()')
for k,v in mysite.items():
print(k , '|', v)
enumerate()
- Python의 내장 함수
- 리스트, 튜플 등 반복 가능한 객체를 순회 할 때, 요소의 인덱스와 값을 동시에 가져올 수 있음
- 코드를 간결하게 작성 가능함
- 기본 문법
# iterable: 리스트, 튜플 등 반복 가능한 객체 # start: 인덱스 시작 번호 enumerate(iterable, start=0)
import sys
menu = dict()
flag = True
num = 0
while flag:
print('1.메뉴추가 2.전체메뉴 3.메뉴수정 4.메뉴삭제 5.메뉴검색 9.시스템종료')
try:
num=int(input('원하시는 작업 번호를 입력해주세요: '))
except ValueError: # 숫자가 아닌 값 입력 시 예외 처리
print('올바른 숫자를 입력하세요.')
print("=" *35)
print()
# 신규 등록
if(num == 1):
name=input('메뉴입력: ')
if(name in menu.keys()):
print(f'{name}은 이미 있습니다')
print("=" *35)
continue
while True:
try:
price=int(input('가격입력?:'))
if(price <= 0):
print('가격이 음수로 입력되었습니다. 다시입력해 주세요.')
print("=" *35)
continue
break
except ValueError: # 숫자가 아닌 값 입력 시 예외 처리
print('올바른 숫자를 입력하세요.')
print("=" *35)
menu[name]=price
print('등록성공했습니다')
print("=" *35)
#전체 메뉴
elif(num ==2):
for (i, key) in enumerate(menu):
print(f'{key}의 가격은 {menu[key]}원 입니다')
print("=" *35)
# 메뉴 수정
elif(num == 3):
key_menu = input('수정 메뉴: ')
if(key_menu not in menu.keys()):
print(f'{key_menu}를 찾을 수 없습니다')
print("=" *35)
continue
while True: # 가격이 올바르게 입력될 때까지 반복
try:
val_price = int(input('수정 가격: '))
if val_price < 0:
print('가격이 음수로 입력되었습니다. 다시 입력해 주세요')
print("=" *35)
continue
break # 올바른 입력이면 반복문 종료
except ValueError: # 숫자가 아닌 값 입력 시 예외 처리
print('올바른 숫자를 입력하세요.')
print("=" *35)
menu[key_menu] = val_price
print(f'{key_menu}의 가격이 {val_price}원으로 수정되었습니다')
print("=" *35)
#메뉴 삭제
elif(num == 4):
key_menu = input('삭제할 메뉴: ')
if(key_menu not in menu.keys()):
print(f'{key_menu}를 찾을 수 없습니다')
print("=" *35)
continue
menu.pop(key_menu)
print(f'{key_menu}가 삭제되었습니다')
print("=" *35)
#메뉴 검색
elif(num == 5):
key_menu = input('메뉴 검색: ')
if(key_menu not in menu.keys()):
print(f'{key_menu}를 찾을 수 없습니다')
print("=" *35)
continue
print(f'{key_menu}의 가격은 {menu[key_menu]}원 입니다')
print("=" *35)
#프로그램 종료
elif num == 9:
print('프로그램을 종료합니다')
print("=" *35)
sys.exit()
else :
print('번호를 잘못 입력 했습니다\n')
print("=" *35)
mytuple = ('제주', 37.75148, 126.34136, '시청', 36.73982, 127.92851)
# 1번 방법
for i in mytuple:
print(i , end = ' ')
print()
# 2번 방법
for (i,v) in enumerate(mytuple):
print(v)
# 3번 방법
for i in range(len(mytuple)):
print(mytuple[i], end = ' ')
mytuple = ('제주', 37.75148, 126.34136, '시청', 36.73982, 127.92851)
mylist = list(mytuple)
# append 이외 list 메소드 사용 가능
mylist.append('수원')
mytuple = tuple(mylist)
for i in mytuple:
print(i , end = ' ')
print()
# 로또 번호 뽑기
import random
print('lotto난수 복합set')
set_lotto = set()
list_lotto = list()
num = 0
while len(set_lotto) < 6:
num = random.randrange(1, 45)
set_lotto.add(num)
# 집합은 순서가 없기 때문에 정렬하기 위해서는 list로 변환
list_lotto = list(set_lotto)
list_lotto.sort()
print(list_lotto)
score_dict = { 'kim':[100,60], 'lee':[90,77], 'goo':[82,34] }
위의 값을 이용해서 전체 국어점수, 영어점수의 총점과 평균 구하기
(# 리스트에서 [국어점서 : 영어점수]라 가정 )
score_dict = { 'kim':[100,60], 'lee':[90,77], 'goo':[82,34] }
kor_tot, eng_tot = 0 , 0
kor_avg , eng_avg = 0 , 0
#전체 총점
for(i,y) in score_dict.items():
kor_tot += y[0]
eng_tot += y[1]
#전체 평균
kor_avg = kor_tot // len(score_dict)
eng_avg = eng_tot // len(score_dict)
# 출력
print(f'시험본 인원: {len(score_dict)}명')
print(f'전체 국어점수 = {kor_tot}, 전체 국어평균 = {kor_avg}')
print(f'전체 영어점수 = {eng_tot}, 전체 영어평균 = {eng_avg}')
print('='*35)
# 개인 총점 및 평균
for(name,value) in score_dict.items():
print(f'{name}님 총점{sum(value)}, 평균: {sum(value)//len(value)}')