Python笔记:求年月日,在整数类型字符串前补0,如‘1‘->‘01‘

问题情景:输入一个时间格式的整数(如20220101),利用数值计算分别求“年”、“月”、“日”,并输出‘xx年xx月xx日’,如‘2022年01月01日’。

Step 1输入时间格式的整数,利用input函数;

# 利用输入函数input(),将值传给变量date,注意input函数输入的是一个字符串
date = int(input("请输入一个时间格式的整数(如20200118):"))

Step 2:分别求出“年”、“月”、“日”;

# 计算“年”,并转换为字符串,方便后续字符串拼接
year = str(date // 10000)  # 假设date=20220101,则20220101//10000=2022
# 计算“月”
month_ = str(date % 10000 // 100)
# 计算“日”
day_ = str(date % 10000 % 100)

在Python中,‘/’为除,计算结果带小数位;‘//’为整除,计算结果取整数部分;‘%’为取余运算。

由于‘月’和‘日’计算结果可能为一位数,则需要在其前填充0,如“1”填充0后为“01”,此处可用zfill方法,用以给字符串前填充0,zfill(n)中n为宽度位数。zfill方法如下:

a = '1'
b = a.zfill(2)
print(b)

运行结果如下:

 因此此处求“年”、“月”、“日”并转换为字符串类型后可进一步优化,方便后续字符串的拼接,优化如下:

# 计算“年”
year = str(date // 10000)
# 计算“月”
month_ = str(date % 10000 // 100)
month = month_.zfill(2)  # zfill方法用以给字符串前面填充0,使得“1月”输出为“01月”
# 计算“日”
day_ = str(date % 10000 % 100)
day = day_.zfill(2)

Step 3:字符串拼接输出,如“月”或“日”计算后为一位数,则在其前补0。

print('%s年%s月%s日'%(year,month,day))

程序运行结果如下:

完整源代码:

# 任意输入日期
date = int(input("请输入一个时间格式的整数(如20200118):"))
# 计算”年“
year = str(date // 10000)
# 计算”月“
month_ = str(date % 10000 // 100)
month = month_.zfill(2)  # zfill方法用来给字符串前面补0
# 计算”日“
day_ = str(date % 10000 % 100)
day = day_.zfill(2)
#  拼接”年“”月“”日“
print('%s年%s月%s日'%(year,month,day))

 字符串拼接的5种方法

str1 = '我'
str2 = '爱'
str3 = 'Python'
输出拼接结果:'我爱Python'

1.利用‘+’拼接

print(str1 + str2 + str3)

2.利用字符串的join方法进行拼接

print(''.join([str1,str2,str3]))  # 按先后顺序拼接

3.format方法

print('{}{}{}'.format(str1,str2,str3))  # 大括号占位,接受对应位置的字符串
print('我{}爱Python{}'.format('非常','编程'))  # 运行结果:‘我非常爱Python编程’

4.f方法拼接

print(f'{str1}{str2}{str3}')

5.字符串格式化拼接

print('%s%s%s'% (str1,str2,str3))

有任何错误之处欢迎大家私信我指出!

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值