@符号之前是账户名,由若干英文字母、数字或者下划线组成。2~4段,其中每一段由英文字母、数字或者下划线组成,不允许包含其它字符,
题目中先给出一个整型数n(1 ≤ n ≤ 30),表示后面有n行字符串需要判断。随后的n行中,每行一个字符串,需要进行合法性判断。对于合法的字符串,应输出“Y”,否则输出“N”,结果中间不用空格。
import re
import re
n = int(input())
b=[]
for i in range(n):
email = input().strip()
if re.match(r'^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)+$', email):
b.append("Y")
else:
b.append("N")
for j in b:
print(j,end='')
这是写出来的代码,但是还有点错误,但不知道在哪,可以帮我指出来一些错误吗?
import re
n = int(input())
for i in range(n):
email = input().strip()
if re.match(r'^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$', email):
print("Y")
else:
print("N")
score=[]
maxscore=int(input("满分分值分为:"))
while True:
try:
x=float(input("请输入同学的成绩:"))
assert 0<=x<=maxscore
score.append(float(x))
except:
print("输入的分数有误!!!")
while True:
f=input("是否继续输入:Y/N/y/n:")
if f not in ('Y','N','y','n'):
print("输入的字符不对")
else:
break
if f=='N' or f=='n':
break
s=float(len(score))
print("总成绩为:",sum(score))
print("平均成绩为:",sum(score)/s)
print("最高分数为:",max(score))