Python【每日一问】36

问:

基础题:
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()

 

 





 

转载于:https://www.cnblogs.com/ElegantSmile/p/10989023.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值