python题目及解答

  1. 数山峰
    题目描述:小P出去爬山,爬山的过程中每隔10米他都会记录当前点的海拔高度(以一个浮点数表示),这些值序列保存在一个由浮点数组成的列表h中。回到家中,小P想研究一下自己经过了几个山峰,请你帮他计算一下,输出结果。
    例如:h=[0.9,1.2,1.22,1.1,1.6,0.99], 将这些高度顺序连线,会发现有两个山峰,故输出一个2(序列两端不算山峰)
h=[0.9,1.2,1.22,1.1,1.6,0.99]
print(len([i for i in range(1,len(h)-1)  if h[i]>h[i+1] and h[i]>h[i-1]]))
#将符合题目要求的山峰存到一个列表,求列表的长度即山峰的个数
  1. 大写金额
    银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序。
    在中文大写方式中,0到10以及100、1000、10000被依次表示为: 零 壹 贰 叁 肆 伍 陆 柒 捌 玖 拾 佰 仟 万
    以下的例子示范了阿拉伯数字到人民币大写的转换规则:
    1 壹圆
    11 壹拾壹圆
    111 壹佰壹拾壹圆
    101 壹佰零壹圆
    -1000 负壹仟圆
    1234567 壹佰贰拾叁万肆仟伍佰陆拾柒圆
    现在给你一个整数a(|a|<100000000), 请你打印出人民币大写表示.
    例如:a=1
    则输出:壹圆
a=-1234567890
M=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']
N=['','圆','拾','佰','仟','万','拾','佰','仟','亿','拾']
O={'零仟':'零','零佰':'零','零拾':'零','零零零':'零','零零':'零','零万':'万','零圆':'圆','亿万':'亿'} 
#将不规则的零替换
r=('' if a>=0 else '负')
#处理负号
s=str(abs(a))
for i in range(0,len(s)):
	r=r+M[int(s[i])]+N[len(s)-i]
#将数字转换为大写
for n in range(10):
	for i in O:
		r=r.replace(i,O[i])
#处理不符合规则的字符
print (r if a!=0 else '零圆')
#处理输入为0的情况
  1. 格式化时间
    给你一个时间t(t是一个字典,共有六个字符串)key(year,month,day,hour,minute,second),每个值为数字组成的字符串,
    如t={‘year’:‘2018’,‘month’:‘9’,‘day’:‘30’,‘hour’:‘16’,‘minute’:‘45’,‘second’:‘2’}
    请将其按照以下格式输出, 格式:XXXX-XX-XX XX:XX:XX。如上例应该输出: 2018-09-30 16:45:02。
t={'year':'2018','month':'9','day':'30','hour':'16','minute':'45','second':'2'}
print('{}-{:0>2}-{:0>2} {:0>2}:{:0>2}:{:0>2}'.format(t['year'], t['month'], t['day'], t['hour'], t['minute'], t['second']))

猜你喜欢

转载自blog.csdn.net/qq_36936510/article/details/84428078