今天学习python教程中的日期,错误处理,if语句,逻辑,列表数组字典,循环
1.日期
日期是一种数据类型,
1.1日期类型 datetime
datetime是日期格式,可以给变量赋予日期格式的值。
使用范例:
from datetime import datetime
today = datetime.now()
print('今天是' + str(today))
执行结果:
今天是2022-04-21 16:58:33.746657
如果要单独显示年,月,日,只需在对应变量后面加上.year,.month,.day即可
例如:
print(today.day)
结果为:
21
值得注意的是,这样获取的年月日是一个int型变量,可以进行int型运算
1.2日期跨度类型 timedelta
timedelta,可以指定一个日期差,比如一天,三天等,使用某个date加减timedelta即可获得相应的date,timedelta中的关键词有:days, seconds, microseconds, milliseconds, minutes, hours, weeks
值得注意的是,并没有year和month关键词,猜测是由于月的天数是不固定导致的。
使用范例:
from datetime import datetime,timedelta
oneday = timedelta(days = 1)
yesterday = today - oneday
print('昨天是' + str(yesterday))
执行结果:
今天是2022-04-21 17:07:12.379615
昨天是2022-04-20 17:07:12.379615
1.3日期的录入 datetime.strptime
有时候我们需要通过输入形式录入日期,此时录入的是string格式,如何转换为date类型呢?需要用药strptime函数。
调用方法:datetime.strptime(待转换变量,'转换格式')
其中,转换格式中,%d表示日,%m表示月,%y表示不带世纪的年份,即只显示后两位,%Y表示完整年份。
使用示例:
birthday=input('请输入出生年月,按【年/月/日】格式')
birthday_date=datetime.strptime(birthday,'%Y/%m/%d')
merryday=input('请输入结婚纪念日,按【年月日】格式')
merryday_date=datetime.strptime(merryday,'%Y%m%d')
print('出生于'+str(birthday_date)+'结婚于'+str(merryday_date)+'正在计算您的单身时长')
print('单身时长:' + str(merryday_date-birthday_date))
输出示例:
请输入出生年月,按【年/月/日】格式1995/3/18
请输入结婚纪念日,按【年月日】格式1996318
出生于1995-03-18 00:00:00结婚于1996-03-18 00:00:00正在计算您的单身时长
单身时长:366 days, 0:00:00
1.4一个小案例:计算多少岁了
功能描述:通过输入一个出生年月日来判断这人多少岁零多少天,需要注意的是,过了生日才会被记为增加一岁。
from datetime import datetime
birthday=input('请输入您的出生年月日,按照【年/月/日】的格式')
birthday_date=datetime.strptime(birthday,'%Y/%m/%d')
# 将出生日期保存到date数据类型中
today=datetime.now()
year=today.year-birthday_date.year
# 这里的year是指岁数,用今年减去出生年
i=0
if today.month<birthday_date.month:
i=1
elif today.month==birthday_date.month and today.day<birthday_date.day:
i=1
# 如果今年还没过生日,就让i=1
lastbirthday=(str(today.year-i)+str(birthday_date.month)+str(birthday_date.day))
# lastbirthday变量指的是上一个生日,如果是可能是今年也可能是明年
# 取决于i的值,也就是今年的生日过了没有
lastbirthday_date=datetime.strptime(lastbirthday,'%Y%m%d')
print("您现在"+str(year-i)+'岁零'+str((today-lastbirthday_date).days)+'天啦!')
# 如果今年生日已过,那就是year,如果没过,那得减1,再用今天减去上一个生日即可
输出结果:
请输入您的出生年月日,按照【年/月/日】的格式1995/03/18
您现在27岁零34天啦!
2.错误处理
值得注意的是错误error不是bug,是由于外部不可掌控因素导致的程序运行出错,比如10/0等。常用的有:try,except,finally
结构:
try/except
try/except/else
try/except/else/finally
try/except/finally
try/finally
注意每个词后面都有:
使用实例:
y = int(input('输入一个数字然后被10除'))
try:
m=10/y
except ZeroDivisionError as e:
print('不允许除以0')
else:
print('结果为',m)
finally:
print('程序运行结束,再见')
结果1:
输入一个数字然后被10除0
不允许除以0
程序运行结束,再见
结果2:
输入一个数字然后被10除-2
结果为 -5.0
程序运行结束,再见
3.if语句
基本结构:
if
if/else
if/elif
代码结构:
if a>b:
print('a更大!')
elif a<b:
print('b更大!')
else:
print('一样大!')
值得注意的是,在python中,如果一个结构中有多句语句,则可以通过四个空格来达到c语言中{}的效果,例如:
if a>b:
c=a
print(c)
在这个程序段中,如果a>b那么a=c和print(c)都会在这个if中执行,但当我们把print(c)前面的空格删除,那么在当a>b时,在if结构内仅会执行c=a语句。
4.逻辑关系
4.1与and,或or,非not,集合in(a,b,c...)
其中,集合in的用法为:
country=input('请输入一个国家')
if country in('中国','日本','韩国'):
print('中日韩圈')
else:
print('其他')
如果输入中国/日本/韩国则输出中日韩圈,例如:
请输入一个国家中国
中日韩圈
请输入一个国家朝鲜
其他
4.2布尔判断
布尔赋值:flag=True
布尔判断:if flag,if flag==True
需要注意的是:True和Flase首字母均要大写
5.列表,数组
5.1列表
使用方式1:直接声明
names = ['张三'.'王五']
使用方式2:空表起始
names = []
names.append('张三') #插入一个'张三'到`names`表中
names.append(12)
names.append(12.001)
print(names) #遍历表
print(names[1]+2) #输出第二个元素+2
输出结果:
['张三', 12, 12.001]
14
从上述例子我们看出,表是没有数据类型的,里面可以存储任何类型的数据,甚至是日期
5.2数组
from array import array
即可使用数组类型,注意,使用数组类型需要指定数据类型
from array import array
scores = array('d')
scores.append(10)
scores.append(12)
print(scores)
print(scores[1])
输出结果
array('d', [10.0, 12.0])
12.0
常见数据类型:

除此之外,还有一些数组/列表常用函数
1.求长度:len()
2.在指定位置插入:xxx.insert(0,'yyy')
3.按字母表顺序排序:xxx.sort()
4,获得从第a开始到b的项,不包括b:xxx[a:b]
例如:
names=['haha','xixi','dudu']
print(names[1:2])
输出结果:
['xixi']
这里从第1个(从0开始)数据开始,到第2个数据结束,不包括第二个
5.3字典
字典就是用键值代替索引号,与数据库类似,通过键值找数据
例如:
person={'1st':'minghui'}
person['3rd'] = 'jianghua'
print(person)
print(person['1st'])
person['2nd']='duxing'
print(person)
其输出为:
{'1st': 'minghui', '3rd': 'jianghua'}
minghui
{'1st': 'minghui', '3rd': 'jianghua', '2nd': 'duxing'}
你甚至可以把字典也放进列表中
6.循环
6.1for循环
1 for循环用法——遍历表:
for name in ['lili','susu','sese']:
print(name)
其结果为:
lili
susu
sese
2 for循环用法——指定项目:
names = ['lili','sese','tutu']
for name in names[0:2]:
print(name)
其结果为:
lili
sese
3 for循环用法——指定次数
for index in range(0,3):
# range(a,b)表示生成从整数a开始到整数b(不包括)的数字表
print('looping')
其结果为
looping
looping
looping
6.2while循环
基本结构:
i=0
while i<2:
print(i)
i=i+1
其结果为:
0
1
wow, seems you have read all the passage! good luck!
这篇博客介绍了Python的基础知识,包括日期类型datetime和timedelta的使用,错误处理的try-except结构,if语句和逻辑操作,以及列表、数组、字典和循环的概念与操作。通过实例展示了日期计算、异常捕获和循环应用。
874

被折叠的 条评论
为什么被折叠?



