python字典练习题(2018腾讯笔试题目)

题目一:

python字典练习题(2018腾讯笔试题目)_第1张图片

 

解题思路:

1、 先定义题中所说的函数,函数功能是: 当传入参数n值时, 函数f(n) 等于每位数分别平方然后求和。

2、 从终端接收三个数:k 、 a 、 b,  并将其放入列表中,为下一步做判断准备; 注意接受的是字符串型数据后文做判断时要将其转化为int型。

3、计算有多少个正整数n 满足a<= n <= b 的同时,满足k * f(n) = n; 看到第一句话就应该想到要用for循环,循环范围时[a , b],然后for循环中判断第二个条件,满足则计数一次。

## 1.定义一个函数f(n),值为每位数平方的和:                  
import random                             
def f(n):                                 
    sum_ = 0                              
    for i in n :                          
        k = int(i) ** 2                   
        sum_ = sum_ + k #### 头转不过来弯       
    return sum_ 

## 2.接收三个输入值,并存入列表中:
li1 = input(':').split()   
li2 = []                   
for i in li1:              
    li2.append(int(i))  

## 3.判断符合条件的进行计数:
point = 0                         
for n in  range(li2[1],li2[2]):   
    if f(str(n)) * li2[0] == n :  
        point += 1                
print(point)                      

题目二:

import random

li1 = []
d = dict()

## 产生1000个随机数
for i in range(1000):
    li1.append(random.randint(20, 100))

#  统计每个数字出现的重复次数
for i in li1:
    if i not in d:
        d[i] = 1
    else:
        d[i] += 1

#  排序
li2 = list(set(li1))
sorted(li2)

print(li2)
print(d)

 

你可能感兴趣的:(python入门)