快乐的数字
描述
编写一个算法来确定一个数字是否“快乐”。 快乐的数字按照如下方式确定:从一个正整数开始,用其每位数的平方之和取代该数,并重复这个过程,直到最后数字要么收敛等于1且一直等于1,要么将无休止地循环下去且最终不会收敛等于1。能够最终收敛等于1的数就是快乐的数字。
例如: 19 就是一个快乐的数字,计算过程如下:
- 12 + 92 = 82
- 82 + 22 = 68
- 62 + 82 = 100
- 12 + 02 + 02 = 1
当输入时快乐的数字时,输出True,否则输出False。
def happy(n):
if n == 1:
print("True")
elif n == 4:
print("False")
else:
num = str(n)
sum = 0
for a in num:
sum += int(a) ** 2
return happy(sum)
n = eval(input())
happy(n)
成绩百分制转换为等级制
描述
利用多分支选择结构将成绩从百分制变换到五级等级制(A、B、C、D、E),例如,输95,输出A
grade = eval(input())
if grade >= 90:
print('A')
elif grade >= 80:
print('B')
elif grade >= 70:
print('C')
elif grade >= 60:
print('D')
else:
print('E')
货物托运收费(循环)
描述
托运货物收费是根据货物重量来算的,某托运处的收费标准是:货物重量在50千克(包括)以下的,每千克0.5元,超过50千克部分每千克0.6元,
写一程序,输入货物重量,输出收费金额,每次输完重量后问一下,输入下一个货物的重量吗(y/n,Y/N),回答是y或Y,则继续,否则程序结束。
输入格式
第一行输入货物重量,第二行输入Y(y)或者N(n)
输出格式
收费金额,中间空格分隔,如下所示:
货物重量: 30 收费: 15.0
def cal(weight):
if weight <= 50:
money = weight*0.5
else:
money = 25+(weight-50)*0.6
return money
weight = eval(input())
money = cal(weight)
print("货物重量: {} 收费: {:.1f}".format(weight,money))
while True:
s = input()
if s in ['Y','y']:
weight = eval(input())
money = cal(weight)
print("货物重量: {} 收费: {:.1f}".format(weight,money))
else:
break
货物托运收费计算
描述
托运货物收费是根据货物重量来算的,某托运处的收费标准是:货物重量在50千克(包括)以下的,每千克0.5元,超过50千克部分每千克0.6元,写一程序,输入货物重量,输出收费金额。
输入格式
输入货物重量
输出格式
输出收费金额
weight = eval(input())
if weight <= 50:
print(weight*0.5)
else:
print(25+(weight-50)*0.6)
计算100以内偶数的和
描述
请编辑程序输出100以内的偶数之和(包括100)
count = 0
for i in range(51):
count += 2*i
print("第{}个偶数为:{}".format(i+1,2*i))
print("100以内的偶数和为: {}".format(count))
使用numpy生成多维数组
根据键盘上输入的两个数字m和n,生成m行n列数据。该二维数组的内容是从0开始的偶数。
输入用逗号分隔的两个整数,如3,4
输出三行四列的偶数。如:
[[ 0 2 4 6]
[ 8 10 12 14]
[16 18 20 22]]
import numpy as np
m,n = eval(input())
arr = np.arange(0,m*n*2,2).reshape(m,n)
print(arr)
显示CPI
附件中有个cpi.csv文件,里面存储了1990年1月到2019年4月的数据,格式为:month和cpi。请用pands库读入这个文件,并从键盘上输入一个日期,如:2000.6。
输出为当月的cpi值,如:100.5。
如果没有当月数据,则输出“No Data”
提示:使用read_csv()读取文件时,若默认模式读入的数据类型是错的,比如字符串"2019.3"读入后变成了数值“2019.30”,请使用dtype参数强制按指定类型读入数据。
import pandas as pd
import numpy as np
record = pd.read_csv('cpi.csv',dtype=np.str)
date = input()
cn = 0
for idate in record['month']:
if idate == date:
cpilocal = record.loc[record['month']==date,'cpi'].values[0]
print(cpilocal)
cn = 1
if cn == 0:
print('No Data')
发现异常值
附件中有个dirtycpi.csv文件,里面存储了1990年1月到2019年4月的数据,其格式为:month和cpi。cpi的数据一般在2%左右为正常。请用pands库读入这个文件,并从键盘上输入><符号和数字作为判断数据异常的阈值,如:<30,表示低于30的cpi数据为异常。>400,表示高于400的cpi数据为异常。
输出为异常数据信息,如:发现大于400的异常数据4条。 输入: <30 输出: 发现小于30的异常数据7条
提示:使用read_csv()读取文件时,若默认模式读入的数据类型是错的,比如字符串"2019.3"读入后变成了数值“2019.30”,请使用dtype参数强制按指定类型读入数据。
import pandas as pd
import numpy as np
record = pd.read_csv('dirtycpi.csv',dtype=np.str)
a = input()
con = a[0]
value = eval(a[1:])
cn = 0
if con == '<':
for c in record['cpi']:
if eval(c) < value:
cn += 1
print('发现小于{}的异常数据{}条'.format(value,cn))
else:
for c in record['cpi']:
if eval(c) > value:
cn += 1
print('发现大于{}的异常数据{}条'.format(value,cn))
标题
描述
已知字典:dt = {"姓名":["张唐","李丽"],"学号":["201805160021","201805160022"],"成绩":{"英语":[89,95],"政治":[98,80],"Python程序设计":[90,95]} }。
要求按照如下格式输出每位同学成绩的平均分(保留一位小数):
张唐 英语、政治、Python三门课程平均成绩为:
李丽 英语、政治、Python三门课程平均成绩为:
for a in range(2):
ave = (dt['成绩']['英语'][a] + dt['成绩']['政治'][a] + dt['成绩']['Python程序设计'][a])/3
print("{} 英语、政治、Python三门课程平均成绩为:{:.1f}".format(dt['姓名'][a],ave))
计算矩形面积和周长
描述
从键盘上输入矩形的长和宽,求解矩形面积和周长。(要求:矩形的长和宽为正数,面积结果保留两位小数)
输入格式
输入的数据请使用以下方式完成,变量名任意,input() 函数中不要添加任何提示信息。
第一行输入一个数字,代表矩形的长;第二行输入一个数字,代表矩形的宽。
输出格式
保留两位小数可用 {:.2f} 形式。
length = eval(input())
width = eval(input())
c = 2 *(length + width)
s = length * width
print("{:.2f}\n{:.2f}".format(s,c))
列表中偶数位索引元素排序
描述
编写程序,将列表中偶数位索引的元素(包含索引为0的元素)进行升序排序,并将排序后的结果放回原列表中。将该过程写成一个函数,参数为列表。
ls = eval(input())
ls[::2] = sorted(ls[::2])
print(ls)
求大多数元素
1) 接收一个列表,找出其中数量最多的元素,如果元素数量相同,选择列表中靠前的元素输出。
2)例如,获得输入列表[3,2,3],输出3。
3)输入代码并提交解答。
ls = eval(input())
counts = {}
for l in ls:
counts[l]= counts.get(l,0)+1
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
print(items[0][0])
第K序元素查找
1)编写程序,在无排序的一个列表中查找第k个最大元素。例如, 给定3,2,1,5,6,4和k=2,输出5。
2)注意:假设k总是有效的