导读:今天首席CTO笔记来给各位分享关于python输出字符串多少元的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
【python】如何把字符串类型的数字统一形式,如:"一亿三千万元"->"130000000元"
#!/usr/bin/env python
# coding: utf-8
dict ={u'零':0, u'一':1, u'二':2, u'三':3, u'四':4, u'五':5, u'六':6, u'七':7, u'八':8, u'九':9, u'十':10, u'百':100, u'千':1000, u'万':10000,
u'0':0, u'1':1, u'2':2, u'3':3, u'4':4, u'5':5, u'6':6, u'7':7, u'8':8, u'9':9,
u'壹':1, u'贰':2, u'叁':3, u'肆':4, u'伍':5, u'陆':6, u'柒':7, u'捌':8, u'玖':9, u'拾':10, u'佰':100, u'仟':1000, u'万':10000,
u'亿':100000000}
def getResultForDigit(a, encoding="utf-8"):
if isinstance(a, str):
a = a.decode(encoding)
count = 0
result = 0
tmp = 0
Billion = 0
while count len(a):
tmpChr = a[count]
#print tmpChr
tmpNum = dict.get(tmpChr, None)
#如果等于1亿
if tmpNum == 100000000:
result = result + tmp
result = result * tmpNum
#获得亿以上的数量,将其保存在中间变量Billion中并清空result
Billion = Billion * 100000000 + result
result = 0
tmp = 0
#如果等于1万
elif tmpNum == 10000:
result = result + tmp
result = result * tmpNum
tmp = 0
#如果等于十或者百,千
elif tmpNum = 10:
if tmp == 0:
tmp = 1
result = result + tmpNum * tmp
tmp = 0
#如果是个位数
elif tmpNum is not None:
tmp = tmp * 10 + tmpNum
count += 1
result = result + tmp
result = result + Billion
return result
if __name__ =="__main__":
test_map = {
'三千五百二十三' : 3523,
'七十五亿八百零七万九千二百零八':7508079208,
'四万三千五百二十一':43521,
'三千五百二十一':3521,
'三千五百零八':3508,
'三五六零':3560,
'一万零三十':10030,
'' : 0,
#1 digit 个
'零' : 0,
'一' : 1,
'二' : 2,
'三' : 3,
'四' : 4,
'五' : 5,
'六' : 6,
'七' : 7,
'八' : 8,
'九' : 9,
#2 digits 十
'十' : 10,
'十一' : 11,
'二十' : 20,
'二十一' : 21,
#3 digits 百
'一百' : 100,
'一百零一' : 101,
'一百一十' : 110,
'一百二十三' : 123,
#4 digits 千
'一千' : 1000,
'一千零一' : 1001,
'一千零一十' : 1010,
'一千一百' : 1100,
'一千零二十三' : 1023,
'一千二百零三' : 1203,
'一千二百三十' : 1230,
#5 digits 万
'一万' : 10000,
'一万零一' : 10001,
'一万零一十' : 10010,
'一万零一百' : 10100,
'一万一千' : 11000,
'一万零一十一' : 10011,
'一万零一百零一' : 10101,
'一万一千零一' : 11001,
'一万零一百一十' : 10110,
'一万一千零一十' : 11010,
'一万一千一百' : 11100,
'一万一千一百一十' : 11110,
'一万一千一百零一' : 11101,
'一万一千零一十一' : 11011,
'一万零一百一十一' : 10111,
'一万一千一百一十一' : 11111,
#6 digits 十万
'十万零二千三百四十五' : 102345,
'十二万三千四百五十六' : 123456,
'十万零三百五十六' : 100356,
'十万零三千六百零九' : 103609,
#7 digits 百万
'一百二十三万四千五百六十七' : 1234567,
'一百零一万零一百零一' : 1010101,
'一百万零一' : 1000001,
#8 digits 千万
'一千一百二十三万四千五百六十七' : 11234567,
'一千零一十一万零一百零一' : 10110101,
'一千万零一' : 10000001,
#9 digits 亿
'一亿一千一百二十三万四千五百六十七' : 111234567,
'一亿零一百零一万零一百零一' : 101010101,
'一亿零一' : 100000001,
#10 digits 十亿
'十一亿一千一百二十三万四千五百六十七' : 1111234567,
#11 digits 百亿
'一百一十一亿一千一百二十三万四千五百六十七' : 11111234567,
#12 digits 千亿
'一千一百一十一亿一千一百二十三万四千五百六十七' : 111111234567,
#13 digits 万亿
'一万一千一百一十一亿一千一百二十三万四千五百六十七' : 1111111234567,
#14 digits 十万亿
'十一万一千一百一十一亿一千一百二十三万四千五百六十七' : 11111111234567,
#17 digits 亿亿
'一亿一千一百一十一万一千一百一十一亿一千一百二十三万四千五百六十七' : 11111111111234567,
}
for each in test_map:
assert(test_map[each] == getResultForDigit(each))
assert的作用是判断getResultForDigit与test_map里的对应key值是否一致
Python如何输出某关键字符并输出完整字符串
下边是实现的代码
# -*- coding: utf-8 -*-
fileFa = open("SEQ.FASTA", "r") # SEQ.FASTA为氨基酸序列文件
countName = 0
Seqlines = fileFa.readlines()
print u"共" + str(len(Seqlines)/2) + u"条序列" #统计共有多少条序列
for i in range (0,len(Seqlines)/2): #输出氨基酸序列名称
print Seqlines[2*i].strip('\n'); #去掉"" 和 "换行"
fileFa.close()
解释:
首先你的氨基酸序列文件非常有规律的存放在SEQ.FASTA文件中,格式如下:
""+氨基酸名称+换行+氨基酸序列+换行
使用fileFa.readlines()将会把文件中的记录全部读入到变量中,并且返回一个列表,列表的格式如下:
['氨基酸名称\n', '氨基酸序列\n', 'qwe56_44606\n', '
KKERDIWTSXAHVTFAKERTQLAYTLRILVHITLSFEQLLEMEIGLAVGGAFLSSALNVLFDRLAPRGELLKMFQRGKHD
V\n']
所以,如果想获取氨基酸序列有多少条,只需要知道列表的长度后除以2即可。
而获取氨基酸序列名称,只需要输出序列中偶数的项即可。回答完毕,希望对您有所帮助。
Python读取一个字符串,并循环输出几遍
总共六个字符
python可以通过str*2重复输出字符串printstr*2#输出字符串两次,循环代码块就是将取到的每个字符进行打印输出,总共六个字符,就循环执行了6次。接下来我们使用For循环遍历一个列表。
求python大神帮忙,在python下,输入一串字符串,输出元素个数。急!!!!!!!!!!!!!!
# 稍作改造
data="asdfasdfasdffrist'~!$123@df#456asgh'endasdfasdfasdf"
counter = [0, 0, 0, 0]
for ch in data:
if ch.isupper():
counter[0] += 1
elif ch.islower():
counter[1] += 1
elif ch.isdigit():
counter[2] += 1
else:
counter[3] += 1
print counter
# 再改:
UPPER, LOWER, DIGIT, OTHER = range(4)
def chtype(ch):
if ch.isupper():
return UPPER
elif ch.islower():
return LOWER
elif ch.isdigit():
return DIGIT
else:
return OTHER
def counter(data):
_counter = [0, 0, 0, 0]
for ch in data:
_counter[chtype(ch)] += 1
return _counter
data="asdfasdfasdffrist'~!$123@df#456asgh'endasdfasdfasdf"
print counter(data)
结语:以上就是首席CTO笔记为大家整理的关于python输出字符串多少元的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于python输出字符串多少元的相关内容别忘了在本站进行查找喔。