任务描述
本关任务:编写程序计算以下运算结果。
1、输入出生日期,求从你出生日开始到今天已经过去多少天了(出生日算第一天,不包括今天)
2、输入一个算术表达式,判断其运算结果是否是整数
3、输入一个字符,判断该字符是否是英文字母
基本知识
1、datetime库求两个日期差值
datetime 模块提供了可以通过多种方式操作日期和时间的类。在支持日期时间数学运算的同时,实现的关注点更着重于如何能够更有效地解析其属性用于格式化输出和数据操作。
使用前需要引入datetime模块,datetime中包含了一个date的对象。我们主要使用datetime模块下的date对象来进行操作。
import datetime
datetime.date.today()函数可用获取当前的日期的date类型数据
datetime.datetime(YYYY,MM,DD)可以获取变量YYYY年,MM月,DD日的date类型数据
两数相减即为日期差值。
该实训项目使用input输入出生日期,采用字符串切片方式获取年、月、日并转成整形,计算出该日期的时间日期类型数据。使用datetime来进行天数差值运算。
2、判断是否为整形即判断该数是否有小数,也就是截取小数部分后的值是否与原来相同。是整数输出True,不是就输出False
3、输入单个字符,若多个字符可以采用字符串定位在第一个字符,判断这个单一字符是否是英文字母,有两种方式,一种是使用 in 操作符,判断这个字符是否在一个由26*2个字母所在的字符串中(小写、大写),第二种方式,可用 ord 函数将其转换为整数并判断是否符合字母的ASCII码特性(‘A’:65 ;‘Z’:65+26-1; ‘a’:97; ‘z’:97+26-1)满足输出是字母,不满足输出不是字母
import datetime
#输入部分
birthday=input() #第一题生日变量,输入格式为yyyymmdd,测试:19991010
exp=input() #第二题表达式,输入测试例子:10*25/(3**4)
c_in=input() #第三题输入的字符串,输入测试例子 "asdf"
#计算部分
#第一题计算部分
#以下可以自行添加代码段,如不需要可忽略,最终计算d并输出
b1=int(birthday[:4])
b2=int(birthday[4:6])
b3=int(birthday[6:])
d_now=datetime.date(2019,10,17) #获取当前日期类型值
d_bir=datetime.date(b1,b2,b3) #求生日的日期类型值
d=d_now-d_bir #求天数差
print("从出生到现在一共%d天"%d.days)
exp=eval(exp)#主要是将字符串转换为数字
#第二题计算部分
if int(exp)==exp:
flag=True
else:
flag=False #求输入表达式的值
#以下可以自行添加代码段,如不需要可忽略
#
result=flag #求取整后是否与原数相同,相同为True,不同为False
print(result)
# #第三题计算部分
c_in=c_in[0] #根据c_in字符串取首字符
# #以下可以添加代码段,如不需要可忽略
# #
result=((c_in >= 'a' and c_in <= 'z')or(c_in>='A' and c_in<='Z')) #判断是否是数字,是为True,否为False
print(result)
# print(result)