Skip to content

Instantly share code, notes, and snippets.

@fkztw
Last active August 29, 2015 14:20
Show Gist options
  • Save fkztw/3c958a61ef85f20245bf to your computer and use it in GitHub Desktop.
Save fkztw/3c958a61ef85f20245bf to your computer and use it in GitHub Desktop.
#1lgputba_(python)_[ptt.cc]
#/usr/bin/env python3
d = {
"Tom": 50,
"Jerry": 70,
"Sally": 90,
}
check = []
while True:
name = input("Enter name: ")
if name == "OK":
break
elif name in d and name not in check:
print('Grade: ' + str(d[name]))
check.append(name)
else:
print('Already in database')
 作者  GriffeyKen (KenGriffeyJr)                                                       看板  Python
 標題  [問題] 重複輸入得到不同輸出
 時間  Sat Apr 25 02:47:56 2015
─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─

各位版上的python高手
我是初學者想問個問題
我想做一個簡單的姓名成績列表
問題如下

一開始輸入Tom
Enter name:Tom
然後得到
Grade:50
再來第二次輸入Tom我希望得到
Already in database的回答
輸入OK則會終止loop

以下是我寫的code
想請問

為啥我輸入Tom都一直得到

Enter name:Tom
Grade:50
already in database

的答案呢?
請問該如何修改呢?
麻煩各位版友請指教
d={
    "Tom":50,
    "Jerry":70,
    "Sally":90,
    }

while 1:
    name=raw_input("Enter name:")

    if name== 'Tom':
        print 'Grade:'+str (d.get("Tom"))

    if name== 'Jerry':
        print 'Grade:'+str (d.get("Jerry"))

    if name== 'Sally':
        print 'Grade:'+str (d.get("Sally"))
    if name not in d:
        print 'not found'
    else:
        print 'already in database'

    if name== 'OK':
        break
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment