第八章 文件和数据格式化

第八章 文件和数据格式化

1.文本字符分布

分析附件 data.txt 文件的字符分布,即每个字符对应的数量。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬ 按照 字符:数量 显示,每行一个结果,如果没有出现该字节则不显示输出,字符采用 Unicode 编码升序排列。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

示例1:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

输入:无
输出:"

a: 1

b: 2

c: 3

"

注意:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

示例1 是一个输入输出示范样例,不是正确结果;
字符:数量,其中,字符表示为可打印字符,按照升序。

#文本字符分布
txt=open("data.txt").read()
counts={}
for zimu in txt:
    counts[zimu] = counts.get(zimu,0)+1
ls = list (counts.items())
ls.sort()
for k ,c in ls:
    print("{}:{}".format(k,c))

data文件下载的地址:data.txt

十二星座

古代航海人为了方便在航海时辨别方位和观测天象,将散布在天上的星星运用想象力将它们连接起来,有一半是在古时候已命名,另一半是近代开始命名的。两千多年前古希腊的天文学家希巴克斯命名十二星座,依次为白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、魔蝎座、水瓶座和双鱼座。给出二维数据存储 CSV 文件(SunSign.csv),内容如下:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

星座, 开始月日, 结束月日,Unicode
水瓶座, 120 , 218 , 9810

双鱼座, 219 , 320 , 9811

白羊座, 321 , 419 , 9800

金牛座, 420 , 520 , 9801

双子座, 521 , 621 , 9802

巨蟹座, 622 , 722 , 9803

狮子座, 723 , 822 , 9804

处女座, 823 , 922 , 9805

天秤座, 923 , 1023 , 9806

天蝎座, 1024 , 1122 , 9807

射手座, 1123 , 1221 , 9808

魔蝎座, 1222 , 119 , 9809

请编写程序,读入 CSV 文件中数据,循环获得用户输入,直至用户输入 “exit” 退出。根据用户输入的星座名称,输出此星座的出生日期范围及对应字符形式。如果输入的星座名称有误,请输出“输入星座名称有误!”。
‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

示例1:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬
输入:"
白羊座
金牛座
双子座
exit "
输出:"
♈座的生日位于 321-419 之间
♉座的生日位于 420- 520 之间
♊座的生日位于 521-621 之间 "

示例2:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

输入:"
天猫座
exit "
输出:"
输入星座名称有误!"

注意:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬

输入使用 input(),不要增加额外的提示信息;
从附件中读取 utf-8 编码文本数据。
附件 1: SunSign.csv
平均代码量
18 行

#十二星座
stars=open("SunSign.csv","r",encoding='utf-8')
ls=[]
for line in stars:
    line  = line. replace("\n","")
    ls. append(line.split(","))
stars.close()

while True:
    InputXingzuo = input()
    InputXingzuo.strip()
    flag =False
    if InputXingzuo == 'exit':
        break
    for line in ls:
        if InputXingzuo == line [0]:
            print("{}座的生日位于{}-{}之间".format(chr(eval(line[3])),line[1],line[2]))
            flag = True
    if flag ==False:
        print("输入星座名称有误!")

你可能感兴趣的:(Python)