电容值转代码

瓷片电容在订货时,在型号中需要用三位科学计数法来表示容值。在电容型号比较多时,手动转换比较头疼,因此编写了一段小脚本来完成这个工作。

例如容值

1uF
10uF
0.22uF
4.7uF
100uF
10uF
22uF
47uF
10uF
100uF
22uF
47uF
1pF
3.3pF
11pF

会转换为

105
106
224
475
107
106
226
476
106
107
226
476
1R0
3R3
110

最后,贴上代码:

codes = '''
1uF
10uF
0.22uF
4.7uF
100uF
10uF
22uF
47uF
10uF
100uF
22uF
47uF
1pF
3.3pF
11pF
'''

def cap_namer(value_str):
	value_str = value_str.lower()
	if 'u' in value_str:
		base = 1000000
	elif 'n' in value_str:
		base = 1000
	elif 'p' in value_str:
		base = 1
	else:
		raise('erro value')
	value_flt = float(value_str[:-2])
	inner_flt = value_flt * base
	if inner_flt < 10:
		code = str(inner_flt).replace('.','R')
	else:
		code = str(inner_flt)[:2] + str(len(str(inner_flt)) - 4)
	return code

if __name__ == '__main__':
	for code in codes.split():
		print(cap_namer(code))