这道Python题有哪位大神可以解答一下吗?

2024-12-28 17:52:40
推荐回答(1个)
回答1:

1、先把CSV文件准备好(图1),再让我们看一下数据,月日和结束月日两列都是右对齐的,然后Unicode列经过查表得知是16进制的数据,对应的是汉字(图2),要转换一下

2

2、开始编写程序

代码如下:(若没有缩进或者缩进不对就看截图:图3,同时还有运行结果见图4)

import numpy as np;

import pandas as pd;

df=pd.read_csv('const.csv');

df.set_index('星座',drop=True,inplace=True);

df.loc[:,'开始月日']=df.loc[:,'开始月日'].apply( lambda x: '%2d月%2d日'%(x//100,x%100));

df.loc[:,'结束月日']=df.loc[:,'结束月日'].apply( lambda x: '%2d月%2d日'%(x//100,x%100));

df.loc[:,'Unicode']=df.loc[:,'Unicode'].apply( lambda x: eval('"\\u%d"'%x));

df

while 1:

a=input();

if a=='Q':

break;

try:

print(

('星座:{},出生日期范围:{开始月日}-{结束月日},字符:{Unicode}'

.format(a,**df.loc[a,:]))

);

except err:

print('输入星座名称有误!');

3

4