编程语言
首页 > 编程语言> > Python【每日一问】36

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()

 

 





 

标签:字符,排序,word,target,Python,一问,36,频次,txt
来源: https://www.cnblogs.com/ElegantSmile/p/10989023.html