冬雪雪冬 发表于 2017-10-1 08:00:00

Python:每日一题 108

本帖最后由 冬雪雪冬 于 2017-10-6 19:19 编辑

首先我们的玩法做了一下改变:
1. 楼主不再提供答案。
2. 为了让大家独立思考,跟帖改为“回帖仅作者可见”。
3. 鼓励大家积极答题,奖励的期限为出题后24小时内。
4. 根据答案的质量给予1~3鱼币的奖励。

题目:
考试成绩是百分制的,0~100,现在要转为优良中及格不及格的评分。
100分, 显示:优秀,满分!
90~99分, 显示:优秀!
80~89分, 显示:良好!
70~79分, 显示:中等!
60~69分, 显示:及格!
0~69分, 显示:不及格!

要求不使用if语句。

SixPy 发表于 2017-10-1 09:25:26

{:10_258:}

SixPy 发表于 2017-10-1 10:12:25

本帖最后由 SixPy 于 2017-10-1 10:25 编辑

lvl = ['不及格']*6+['及格', '中等', '良好', '优秀', '优秀,满分','NB!']
score = +
[(lvl[(scr//10,11)],scr)for scr in score]

[('不及格', 0), ('及格', 60), ('中等', 70), ('良好', 80), ('优秀', 90), ('优秀,满分', 100), ('不及格', 11), ('不及格', 59), ('及格', 65), ('中等', 75), ('良好', 88), ('优秀', 99), ('NB!', 110), ('NB!', 101)]

sige 发表于 2017-10-1 17:18:05

那我只能用while了……
score = int(input('请输入考试成绩(0-100):'))
while score == 100:
    print('优秀,满分!')
    break
while 90 <= score <= 99:
    print('优秀!')
    break
while 80 <= score <= 89:
    print('良好!')
    break
while 70 <= score <= 79:
    print('中等!')
    break
while 60 <= score <= 69:
    print('及格!')
    break
while 0 <= score <= 69:
    print('不及格!')
    break

bush牛 发表于 2017-10-1 21:46:11

def s(x):
    a = int(x/10)
    return{
      10:"满分",
      9:"优秀",
      8:"良好",
      7:"中等",
      6:"及格",
      5:"不及格",
      4: "不及格",
      3: "不及格",
      2: "不及格",
      1: "不及格",
      0: "不及格",
    }.get(a)

print(s(73))

solomonxian 发表于 2017-10-1 23:01:07

将输入数字//10,再用字典索引
def fun(n):
    d = {10:'优秀,满分!', 9:'优秀!', 8:'良好!', 7:'中等!', 6:'及格!'}
    return d.get(n//10, '不及格!')

timeislife 发表于 2017-10-2 18:48:58

本帖最后由 timeislife 于 2017-10-2 18:50 编辑

a = 0
b = 0
c = 0
d = 0
e = 0
f = 0
g = 0
while True:
    num = input("请输入你的分数")
    number = int(num)
    while a<1 and number == 100:
      a+=1
      print("优秀,满分!")
    while b<1 and number>=90 and number<=99:
      b+=1
      print("优秀!")
    while c<1 and number>=80 and number<=89:
      c+=1
      print("良好!")
    while d<1 and number>=70 and number<=79:
      d+=1
      print("中等!")
    while e<1 and number>=60 and number<=69:
      e+=1
      print("及格!")
    while f<1 and number>=0 and number<=59:
      f+=1
      print("不及格!")
    while g<1 and number>100 and number<0:
      g+=1
      print("输入有误!")
   

堕落之翼 发表于 2017-10-2 22:27:51

score = {
    0:'不及格!',
    1:'不及格!',
    2:'不及格!',
    3:'不及格!',
    4:'不及格!',
    5:'不及格!',
    6:'及格!',
    7:'中等!',
    8:'良好!',
    9:'优秀!',
}
perfect = {100:'优秀,满分!'}

def fun(n):
    try:
      print(score)
    except:
      try:
            print(perfect)
      except:
            print('你的输入有误!')
            
fun(100)

qwc3000 发表于 2017-10-6 10:27:58

def chengji(num):
    while num==100:
      print("优秀,满分")
      break
    while num >= 90 and num <100:
      print("优秀")
      break
    while num >= 80 and num <90:
      print("良")
      break
    while num >= 70 and num <80:
      print("中等")
      break
    while num >= 60 and num <70:
      print("及格")
      break
    while num <60:
      print("不及格")
      break
chengji(73)

wannaBe 发表于 2017-10-7 11:22:30

n = int(input('输入一个分数:'))
score = {10:'优秀,满分!', 9:'优秀!', 8:'良好!', 7:'中等!', 6:'及格!'}
print (score.get(n//10, '不及格!'))

雁归林 发表于 2017-10-7 12:56:44

本帖最后由 雁归林 于 2017-10-7 13:17 编辑

score = {'0':'不及格!', '1':'不及格!','2':'不及格!','3':'不及格!','4':'不及格!', '5':'不及格!',
    '6':'及格!','7':'中等!','8':'良好!', '9':'优秀!','10':'优秀,满分!',}
def fun(n):
    try:
      print(score)
    except:
      print('你的输入有误!')
            
fun(50)

雁归林 发表于 2017-10-7 13:14:07

wannaBe 发表于 2017-10-7 11:22
n = int(input('输入一个分数:'))
score = {10:'优秀,满分!', 9:'优秀!', 8:'良好!', 7:'中等!', 6: ...

简洁

majia1015 发表于 2018-2-25 19:44:59

fraction = int(input('请输入你的分数: '))

if fraction == 100:
    print('你的分数是%d分,优秀,满分!' % fraction)
elif (fraction >= 90) and (fraction <= 99):
    print('你的分数是%d分,优秀' % fraction)
elif (fraction >= 80) and (fraction <= 89):
    print('你的分数是%d分,良好' % fraction)
elif (fraction >= 70) and (fraction <= 79):
    print('你的分数是%d分,中等' % fraction)
elif (fraction >= 60) and (fraction <= 69):
    print('你的分数是%d分,及格' % fraction)
else:
    print('你的分数是%d分,不及格' % fraction)

grf1973 发表于 2018-4-25 13:22:00

def fun(n):
        d=['不及格']*6+['及格','中等','良好','优秀','优秀,满分']
        return '%d分:%s'%(n,d)

永恒的蓝色梦想 发表于 2019-8-18 17:45:01

def func(mark)
        d={10: '优秀,满分!', 9: '优秀!', 8: '良好!', 7: '中等!', 6: '及格!'};mark//=10
        try:print(d)
        except:print('不及格!')

kinkon 发表于 2022-3-8 10:37:39

from collections import defaultdict

def fun108(n):
    f = defaultdict(str)
    for i in range(60):
      f = '不及格!'
    for i in range(60, 70):
      f = '及格!'
    for i in range(70, 80):
      f = '中等!'
    for i in range(80, 90):
      f = '良好!'
    for i in range(90, 100):
      f = '优秀!'
    f = '优秀,满分!'

    return f

print(fun108(100))
页: [1]
查看完整版本: Python:每日一题 108