这里是python初学者.

while True:  
Date = input('enter date of appointment in dd/mm/yyyy format. ')
day,month,year = Date.split('/')

if month=={1,3,5,7,8,10,12}:
    max_days=31
elif month=={4,6,9,11}:
    max_days=30
elif year%4==0 and year%100!=0 or year%400==0:
    max_days=29
else:
    max_days=28

if month<1 or month>12:
    print('invalid, enter a number between 1 - 12')
elif day<1 or day>max_days:
    print('invalid, check day')
elif year<2022:
    print('invalid, enter a year greater than 2021')
else:
    break

但我在第10行遇到了错误:"并非所有参数都在字符串格式化期间转换",即"elif年份%4==0,年份%100!=0或年份%400==0:"

我很困惑如何修复它,我是否遗漏了另一个公式?

推荐答案

日、月和年变量是字符串.这意味着当使用%运算符时,字符串将被解释为格式字符串.但由于字符串不是格式字符串,因此会导致错误.

解决方案是将日、月和年变量转换为整数.

day_string, month_string, year_string = Date.split('/')
day = int(day_string)
month = int(month_string)
year = int(year_string)

同样,在if语句中,您根据月份判断最大天数,使用if month == {1,3,5,7,8,10,12}:,这不会判断月份变量是1、3、5、7、8、10还是12.要解决此其他问题,请使用if month in [1, 3, 5, 7, 8, 10, 12].

Python相关问答推荐

try 在树叶 map 上应用覆盖磁贴

ModuleNotFound错误:没有名为flags.State的模块; flags不是包

将两只Pandas rame乘以指数

将图像拖到另一个图像

如何在Python脚本中附加一个Google tab(已经打开)

梯度下降:简化要素集的运行时间比原始要素集长

在极性中创建条件累积和

把一个pandas文件夹从juyter笔记本放到堆栈溢出问题中的最快方法?

无法在Docker内部运行Python的Matlab SDK模块,但本地没有问题

如何并行化/加速并行numba代码?

Django RawSQL注释字段

Plotly Dash Creating Interactive Graph下拉列表

可以bcrypts AES—256 GCM加密损坏ZIP文件吗?

OpenCV轮廓.很难找到给定图像的所需轮廓

如果有2个或3个,则从pandas列中删除空格

类型对象';敌人';没有属性';损害';

如何在Pandas中用迭代器求一个序列的平均值?

如何从一个维基页面中抓取和存储多个表格?

按最大属性值Django对对象进行排序

如何定义一个将类型与接收该类型的参数的可调用进行映射的字典?