首页 > 编程语言 > 详细

Python【每日一问】36

时间:2019-07-04 13:12:04      阅读:116      评论:0      收藏:0      [点我收藏+]

问:

基础题:

809*x=800*x+9*x+1 其中 x 代表的两位数, 8*x 的结果为两位数, 9*x 的结果为 3 位数。求 x ,及计算 809*x 的结果。

提高题:

对文件"命运.txt"进行字符频次统计,并将所有字符按照频次高低排序,将排序后的字符及其频次输出到文件"命运-频次排序.txt"
字符包括中文、英文、标点等,但不包括空格和回车
输出格式要求:
(1)字符与频次之间采用冒号 :分隔
(2)一个字符一行,比如
理:224
斯:120 
卫:100

答:

基础题:

809*x=800*x+9*x+1 其中 x 代表的两位数, 8*x 的结果为两位数, 9*x 的结果为 3 位数。求 x ,及计算 809*x 的结果。

方法1:

for x in range(10, 100):    
    if (10 <= 8*x < +100) and (100 <= 9*x <= 1000):        
    print(x)        
    print(809*x)

 

方法2:

a = 809
for i in range(10, 100):    
    b = a * i + 1    
    if 1000 <= b <= 10000 and 8 * i < 100 and 9 * i > 99:        
    print(i)        
    print(b)

提高题:

对文件"命运.txt"进行字符频次统计,并将所有字符按照频次高低排序,将排序后的字符及其频次输出到文件"命运-频次排序.txt"
字符包括中文、英文、标点等,但不包括空格和回车
输出格式要求:
(1)字符与频次之间采用冒号 :分隔
(2)一个字符一行,比如
理:224
斯:120 
卫:100


方法1:

txt = open(命运.txt, r, encoding=utf-8).read()
txt = txt.replace(\n, ‘‘)
count = {}
for word in txt:    
    count[word] = count.get(word, 0) + 1
counts = sorted(count.items(), key=lambda x: x[1], reverse=True)
for word, cnt in counts:    
    print(f{word} : {cnt})    
    file = open(命运-频次排序.txt, a+, encoding=utf-8)    
    file.write(f{word} : {cnt} + \n)

 

方法2:

f = open(r命运.txt, r, encoding="utf-8")
m = f.read().replace(\n, ‘‘)
target = {}
for word in m:    
    target[word] = target.get(word, 0) + 1
# print(target)
?
target = sorted(target.items(), key=lambda x: x[1], reverse=True)
?
with open(命运-频次排序1.txt, w, encoding=utf8) as output:    
for tar, count in target:        
    output.write({}:{}\n.format(tar, count))
    
f.close()

 

 





 

Python【每日一问】36

原文:https://www.cnblogs.com/ElegantSmile/p/10989023.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!