注意:
- 字符串中的某个字符不能直接赋值更改
- 需要判断输入的日期长度
- 需要判断日期连接符的正确性
- 需要判断输入是否为数字
改动: - 不要使用str作为变量名
- 使用raise ValueError('errors!')抛出错误
- 将检查和拼接放在一个函数中
def date_trans(s):
if (len(s) == 10):
for i in range(0, 10):
if (i != 4 and i != 7):
if not (s[i] >= '0' and s[i] <= '9'):
raise ValueError('error!')
else:
if not (s[i] == '-' or s[i] == '/' or s[i] == '.'):
raise ValueError('error!')
return s[0 : 4] + '-' + s[5 : 7] + '-' + s[8 : 10]
if (len(s) == 8):
for i in range(0, 8):
if not (s[i] >= '0' and s[i] <= '9'):
raise ValueError('error!')
return s[0 : 4] + '-' + s[4 : 6] + '-' + s[6 : 8]
else:
raise ValueError('error!')
s = input()
print(date_trans(s))
网友评论
1. str是 python关键字不能用作变量名
2. 检查参数合法性应该是 date_trans的工作,不应该在函数外面进行,试着将全部代码封装为一个函数
3. 可以使用 `raise ValueError('error!')` 来抛出错误