# author: yaojc

name: str = "小明"

print(f'{name}今晚没吃饭')
# 小明今晚没吃饭
print('{name}今晚没吃饭'.format(name=name))
# 小明今晚没吃饭

name: str = "小明"
# 我要保留20个字符,居中显示,用*填充\t
print('format方法格式化字符串{name:*^20}'.format(name=name))
# format方法格式化字符串*********小明*********
print(f'f-string方法格式化字符串,居中补*\n{name:*^20}') 
# f-string方法格式化字符串,居中补*
# *********小明*********
print(f'f-string方法格式化字符串,左补*\n{name:*^20}') 
# f-string方法格式化字符串,左补*
# *********小明*********
print(f'f-string方法格式化字符串,右补*\n{name:*^20}') 
# f-string方法格式化字符串,右补*
# *********小明*********

# 用f-string进行进制转换
num = 3000
# 不同的进制打印出数字
print(f'num转成浮点数,并使用千位符{num:,.2f}')
# num转成浮点数,并使用千位符3,000.00
print(f'num转成科学计数法{num:e}')
# num转成科学计数法3.000000e+03
print(f'num转成8进制打印{num:o}')
# num转成8进制打印5670
print(f'num转成2进制打印{num:b}')
# num转成2进制打印101110111000
print(f'num转成16进制打印,保留4位,补0,{num:04x}')
# num转成16进制打印,保留4位,补0,0bb8


# f-string 格式化时间操作
import datetime
tm = datetime.datetime.today()
print(tm)
print(f'现在是: {tm:%Y-%m-%d (%a) %H:%M:%S}')
# 现在是: 2019-12-29 (Sun) 22:57:37

# %a 星期几（缩写） 'Sun'
print(f'显示当前星期(缩写): {tm: %a }')
# 显示当前星期(缩写):  Sun

# %A 星期几（全名） 'Sunday'
print(f'显示当前星期(全称): {tm: %A }')
# 显示当前星期(全称):  Sunday

# %w 星期几 周日是第一天（数字，0 是周日，6 是周六） '0'
print(f'数字显示星期几: {tm: %w }')
# 数字显示星期几:  0

# %u 星期几 周一是第一天（数字，1 是周一，7 是周日） '7'
print(f'数字显示星期几: {tm: %u }')
# 数字显示星期几:  7

# %d 日（数字，以 0 补足两位） '29'
print(f'显示当前日: {tm: %d }')
# 显示当前日:  29

# %b 月（缩写） 'Dec'
print(f'显示当前月: {tm: %b }')
# 显示当前月:  Dec
# 
# %B 月（全名） 'December'
print(f'显示当前月(全称): {tm: %B }')
# 显示当前月(全称):  December

# %m 月（数字，以 0 补足两位） '12'
print(f'数字显示月份: {tm: %m }')
# 数字显示月份:  12

# %y 年（后两位数字，以 0 补足两位） '19'
print(f'显示当前年: {tm: %y }')
# 显示当前年:  19

# %Y 年（完整数字，不补零） '2019'
print(f'显示当前年: {tm: %Y }')
# 显示当前年:  2019

# %H 小时（24小时制，以 0 补足两位） '22'
print(f'显示当前小时: {tm: %H }')
# 显示当前小时:  22

# %I 小时（12小时制，以 0 补足两位） '10'
print(f'显示当前小时: {tm: %I }')
# 显示当前小时:  10

# %p 上午/下午 'PM'
print(f'显示上午/下午 pm/am: {tm: %p }')
# 显示上午/下午 pm/am:  PM

# %M 分钟（以 0 补足两位） '57'
print(f'显示当前分钟: {tm: %M }')
# 显示当前分钟:  57

# %S 秒钟（以 0 补足两位） '37'
print(f'显示当前秒: {tm: %S }')
# 显示当前秒:  37

# %f 微秒（以 0 补足六位） '097973'
print(f'显示当前微秒: {tm: %f }')
# 显示当前微秒:  097973

# %z UTC偏移量（格式是 ±HHMM[SS]，未指定时区则返回空字符串） '+1030'
print(f'显示当前UTC偏移量: {tm: %z }')
# 显示当前UTC偏移量:

# %Z 时区名（未指定时区则返回空字符串） 'EST'
print(f'显示当前时区名: {tm: %Z }')
# 显示当前时区名:

# %j 一年中的第几天（以 0 补足三位） '363'
print(f'显示当前是一年中的第几天: {tm: %j }')
# 显示当前是一年中的第几天:  363

# %U 一年中的第几周（以全年首个周日后的星期为第0周，以 0 补足两位） '52'
print(f'显示当前是一年中的第几周: {tm: %U }')
# 显示当前是一年中的第几周:  52

# %w 一年中的第几周（以全年首个周一后的星期为第0周，以 0 补足两位） '0'
print(f'显示当前是一年中的第几周: {tm: %w }')
# 显示当前是一年中的第几周:  0

# %V 一年中的第几周（以全年首个包含1月4日的星期为第1周，以 0 补足两位） '52'
print(f'显示当前是一年中的第几周: {tm: %V }')
# 显示当前是一年中的第几周:  52

# f-string 方法执行方法 拼接返回值
def get_perfect() ->str:

    name:str = '小刚'
    age:int = 35
    ret =  f'{name}今年{age}岁'
    return ret
data = f"{ get_perfect() }, 他不会失业"
print(data)

# 小刚今年35岁, 他不会失业