概述
HJ97
首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。
while True:
try:
n=int(input())
count1=0
count2=0
sum=0.0
for i in raw_input().split():
data=int(i)
if data<0:
count1+=1
elif data>0:
count2+=1
sum+=data
print count1,round(sum/count2,1)
except:
break
对于for i in raw_input().split(),raw_input().split()得到的是一个列表,对于输入的内容根据空格划分,得到一个列表。
HJ96
将一个字符中所有出现的数字前后加上符号“”,其他字符保持不变
示例1
输入
Jkdi234klowe90a3
输出
Jkdi234klowe90a3*
while True:
try:
li=list(raw_input())
i=0
while i<len(li):
if li[i].isdigit():
temp=1
try:
while li[i+temp].isdigit():
temp+=1
except:
pass
li.insert(i+temp,'*')
li.insert(i,'*')
i+=temp+2
else:
i+=1
print ''.join(li)
except:
break
HJ95
考试题目和要点:
1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。(30分)
2、中文大写金额数字到“元”为止的,在“元”之后,应写“整字,如¥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。(30分)
3、阿拉伯数字中间有“0”时,中文大写要写“零”字,阿拉伯数字中间连续有几个“0”时,中文大写金额中间只写一个“零”字,如¥6007.14,应写成“人民币陆仟零柒元壹角肆分“。(40分)
输入描述:
输入一个double数
输出描述:
输出人民币格式
示例1
输入
151121.15
输出
人民币拾伍万壹仟壹佰贰拾壹元壹角伍分
#-*- coding:utf-8 -*-
while True:
try:
inp=raw_input().split('.')
ina=inp[0]
inb=inp[1]
x=['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
y= ['元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟', '万亿', '拾', '佰', '仟']
z=['角','分']
a='人民币'
b=''
for i in range(len(inb)):
if inb[i]=='0':
continue
else:
b+=x[int(inb[i])]+z[i]
ina=ina[::-1]
for i in range(len(ina))[::-1]:
if ina[i]=='0':
a+='零'
else:
temp=x[int(ina[i])]+y[i]
a+=temp
s=a
s = s.replace('零零', '零')
s = s.replace('人民币零', '人民币')
s = s.replace('壹拾', '拾')
if b:
print ''.join(s+b)
else:
print ''.join(s+'整')
except:
break
看了别人的答案才发现自己思路没打开。
- 对于有中文字符串的,记得加#-- coding:utf-8 --
- 合理利用列表,对于固定格式用列表即可
- 字符串的replace可以去除一些重复的不符合题意的字符
最后
以上就是鳗鱼乌龟为你收集整理的华为机试-pythonHJ97HJ96HJ95的全部内容,希望文章能够帮你解决华为机试-pythonHJ97HJ96HJ95所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复