使用Python判断学生成绩

来自YTYZX有图有真相的百科
跳转至: 导航搜索

此方法可以判断输入是否为数字,包含分数为66.5这样的包含.5(0.2或者0.6之类不包括)的成绩。

  1. -*- coding:UTF-8 -*-
  2. ============================================================
  3. Filename pythonlesson1.py
  4. Version: 1.0
  5. Author: ytyzx
  6. Create Date: 2022/11/20
  7. Update Date: 2022/11/20
  8. 基础学习python
  9. ============================================================
  10. 定义函数,可以正确分辨小数和负数

def is_number(s):

   try:
       float(s)
       return True
   except ValueError:
       pass
   try:
       import unicodedata
       unicodedata.numeric(s)
       return True
   except (TypeError, ValueError):
       pass
   return False


inputscore = input('请输入分数: ') if is_number(

       inputscore

): #isdigit函数只能辨别正整数,对小数和负数的判断都出现了错误。 isnumeric() :是否所有字符均为数值字符,包括Unicode数字、双字节全角数字、罗马数字、汉字数字,不包括小数。

   stuscore = eval(
       inputscore
   )  # eval()会去掉字符串最外层的引号,然后当做Python语句执行[mark:语句or表达式,应该是表达式!],直观理解是:看起来像数字的字符串变成数字了
   if stuscore < 0 or stuscore > 100 or stuscore % 0.5 != 0:
       print('请输入正确的分数')
   elif 100 >= stuscore >= 80:
       print('成绩优秀')
   elif 80 > stuscore >= 60:
       print('成绩良好')
   elif 60 > stuscore >= 40:
       print('成绩及格')
   else:
       print('不及格')

else:

   print('此处请输入数字')