求修改,讲一下
def demo(score):if score < 60:
return "D"
if 60 <= score < 80:
return "C"
if 80 <= score < 90:
return "B"
if 90 <= score < 100:
return "A"
if score == 100:
return "S"
else:
return "请输入正确形式"
while True:
score = int(input("请输入分数: "))
a = demo(score)
if demo(score) != "请输入正确形式":
print("你的等级是:%s"%a)
else:
print("请输入0 ~ 100以内的数字")
temp = input("是否继续进行测试,继续请按y")
if temp == "y":
print("测试继续...")
continue
else:
print("测试结束!!!")
break
本帖最后由 isdkz 于 2022-2-15 23:04 编辑
def demo(score):
if 0 <= score < 60: # 这里加个大于等于0,不然它小于0也会输出D
return "D"
if 60 <= score < 80:
return "C"
if 80 <= score < 90:
return "B"
if 90 <= score < 100:
return "A"
if score == 100:
return "S"
else:
return "请输入正确形式"
while True:
score = input("请输入分数: ") # 先不要转成整数
if not score.isdigit(): # 对输入先判断一下
print('请输入一个整数')
continue
score = int(score)
a = demo(score)
if demo(score) != "请输入正确形式":
print("你的等级是:%s"%a)
else:
print("请输入0 ~ 100以内的数字")
temp = input("是否继续进行测试,继续请按y")
if temp.lower() == "y": # 这里可以先把它处理一下再判断是不是小写y,因为别人有可能输入大写
print("测试继续...")
continue
else:
print("测试结束!!!")
break isdkz 发表于 2022-2-15 22:36
如果输入a它显示有错误,无法转化为字符串a 本帖最后由 isdkz 于 2022-2-15 23:01 编辑
蜜雪冰城 发表于 2022-2-15 22:45
如果输入a它显示有错误,无法转化为字符串a
那你可以先用字符串的isdigit方法判断一下,我改一下上面的代码 本帖最后由 饭-米粒 于 2022-2-18 19:12 编辑
def tmp007():
result =
rank = ['S','A','B','C','D']
def demo(num):
if num >100 or num <0:
return False
else:
for i in range(0,len(result)):
if result<= num:
return(rank)
while(True):
sore = input("请输入分数:")
if sore.isdigit():
item = demo(int(sore))
if item == False:
print("请输入0~100以内的数字:")
continue
else:
print("你的等级是%s"%item)
temp = input("是否继续进行测试,继续请输入Y")
if temp =='y' or temp =='Y':
continue
break
else:
print("请输入0~100以内的数字:")
tmp007()
这种类型可以用这种方法,感觉还不错,昨天在网上看到的 def tmp007():
result =
rank = ['S','A','B','C','D']
def demo(num):
if num >100 or num <0:
return False
else:
for i in range(0,len(result)):
if result<= num:
return(rank)
while(True):
sore = input("请输入你的分数:")
if sore.isdigit():
item = demo(int(sore))
if item == False:
print("请输入0~100的数字:")
continue
else:
print("级别是%s"%item)
temp = input("是否继续进行,继续请输Y")
if temp =='y' or temp =='Y':
continue
break
else:
print("请输入0~100的数字:")
tmp007() cs上的帖子,你试试 纯粹练习练习:
Pythongrade = lambda score: 'S' if score == 100 else 'A' if score >= 90 else 'B' if score >= 80 else 'C' if score >= 60 else 'D'
res = 'y'
while res == 'y':
print("你的等级是:", grade(int(input("请输入分数: "))), "\n是否继续进行测试?(y,n)")
res = input()
print("测试继续..." if res == 'y' else "测试结束!!!")
C++#include <iostream>
using namespace std;
auto grade = [](int score) -> char{ return score == 100 ? 'S' : score >= 90 ? 'A' : score >= 80 ? 'B' : score >= 60 ? 'C' : 'D'; };
int main()
{
int score;
for(char c = 'y'; c == 'y';){
cout << "请输入分数: ";
cin >> score;
cout << "你的等级是:" << grade(score) << endl << "是否继续进行测试?(y,n)";
cin >> c;
c != 'y' ? cout << "测试结束!!!" << endl : cout << "测试继续..." << endl;
}
return 0;
}C#include <stdio.h>
char grade(int score){ return score == 100 ? 'S' : score >= 90 ? 'A' : score >= 80 ? 'B' : score >= 60 ? 'C' : 'D'; }
int main()
{
int score;
for(char c = 'y'; c == 'y';){
printf("请输入分数: ");
scanf("%d", &score);
getchar();
printf("你的等级是:%c\n是否继续进行测试?(y,n)", grade(score));
scanf("%c", &c);
printf(c != 'y' ? "测试结束!!!" : "测试继续...\n");
}
return 0;
}
页:
[1]