欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python程序设计 测验易错题总结

程序员文章站 2022-06-05 15:57:48
1.温度转换 t=input() if t[-1]=="J": t=int(t[:-1]) t1=t/4.186 print("%.3fcal"%t1) else: t=int(t[0:-3]) t2=t*4.186 print("%.3fcal"%t2) #这一题不难,但要注意input()里面不 ......

1.温度转换

t=input()
if t[-1]=="j":
    t=int(t[:-1])
    t1=t/4.186
    print("%.3fcal"%t1)
else:
    t=int(t[0:-3])
    t2=t*4.186
    print("%.3fcal"%t2)

 

#这一题不难,但要注意input()里面不要加提示语句,会报错的。

 

2.快乐的数字
 

n=input()
h=0
i=0
while i<100:
    for x in n:
        h+=int(x)**2
        print(n)
    if h==1:
        print("true")
        break
    else:
        n=str(h)
        h=0
    i+=1
else:
        print("false")

 


 
 

3.斐波那契数列计算 b
描述:
斐波那契数列如下:
f(0) = 0, f(1) = 1
f(n) = f(n-1) + f(n-2)
编写一个计算斐波那契数列的函数,采用递归方式,输出不超过n的所有斐波那契数列元素
调用上述函数,完成如下功能:
用户输入一个整数n,输出所有不超过n的斐波那契数列元素、输出数列的元素和及平均数,输出按照顺序,用英文逗号和空格分割

此题目为自动评阅,请严格按照要求规范输入和输出。
输入
示例1:5
输出
示例1:
0, 1, 1, 2, 3, 5, 12, 2

n=eval(input()) #输出一个斐波那契数列元素
def fun(n):
if n==0:
return 0
elif n==1:
return 1
else:
return fun(n-1)+fun(n-2)
i=0
l=[]
while i<=n: #输出从0到n的斐波那契数列元素
a=fun(i)
l.append(a)
print("{}, ".format(a),end="") #0以后的元素前面都有空格
i+=1
sums=sum(l)
average=sums//len(l)
print("{},{}".format(sums,average)) #总和和平均数前面也有空格

 

4.站队顺序输出

描述:
有一群人站队,每人通过一对整数(h, k)来描述,其中h表示人的高度,k表示在此人前面队列中身高不小于此人的总人数。

实现一个算法输出这个队列的正确顺序。
输入格式:
输入格式为二维列表,即 list[list[]]形式
外层list包含队列中全部的人,内层list为[h,k]格式,代表个人信息。
输出格式:
输出格式为:list[list[int]]形式
与输入格式一样,需要按照队列顺序排列。
输入输出示例 :
示例 1    
输入
[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]
输出
[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]
 

from operator import itemgetter
queue = eval(input())

queue.sort(key = itemgetter(1))
queue.sort(key = itemgetter(0), reverse = true)

output = []
for item in queue:
output.insert(item[1], item)
print(output)

 

5.合法括号组合的生成
描述:
     给定括号的个数n,编写程序生成所有格式正确的括号组合。
输入格式 :输入一个整数。
输出格式:输出为一个列表,每个元素是一个字符串,表示一个可能的括号组合。        
示例 : 
输入:3
输出:['((()))', '(()())', '(())()', '()(())', '()()()']

def brackets(list,s,left,right):
    if left==0 and right==0:
        list.append(s)   
    if left>0:     #注意这里是if,不是elif
       brackets(list,s+'(',left-1,right+1)
    if right>0:   #注意这里是if,不是elif
        brackets(list,s+')',left,right-1)
    return list
left=eval(input())
right=0
list=[]
s=''
brackets(list,s,left,right)
print(list)

 

6.凯撒密码 b

pwd=input()
s=""
for x in pwd:
    count=0
    if x in "abcdefghijklmnopqrstuvwxyz":
        c=(ord(x)+3-64)%26+64
        s+=chr(c)
        count=1
    if x in "abcdefghijklmnopqrstuvwxyz":
        c=(ord(x)+3-97)%26+97
        s+=chr(c)
        count=1
    if count==0:
        s+=x
print(s)

 

7. 3位水仙花数计算 b

for n in range(100,999):
    a=str(n)
    s=int(a[0])**3+int(a[1])**3+int(a[2])**3
    if n==407:
        print(n)
    if s==n and n!=407:
        print(n,end=",")

 

8.词频统计之《哈姆雷特》

def gettxt():
    txt=open("hamlet.txt","r").read()
    txt=txt.lower()
    for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_{|}`~''':
        txt=txt.replace(ch," ")
    return txt
txt=gettxt()
words=txt.split()
count={}
for word in words:
    count[word]=count.get(word,0)+1
items=list(count.items())   #二维列表
items.sort(key=lambda x:x[1],reverse=true)
for i in range(10):
    word,count=items[i]
    print("{:<10},{:>5}".format(word,count))