python十位以下的火星碼轉十進制數

在這裏插入圖片描述

import re
def cheng(n):
	result=1
	jinzhi=[1,2,3,5,7,11,13,17,19]
	for i in range(0,len(jinzhi)):
		if(n==jinzhi[i]):
			for j in range(0,i+1):
				result*=jinzhi[j]
	return result
def main():	
	while(True):
		num=input("請輸入十位以下的火星碼:")
		n=[]
		zzs=''
		sum=0
		count=0
		for i in range(0,len(num)):
			n.append(num[i])
		if(len(n)>=10):
			continue
		elif(len(n)<10):	
			zhengze=['[0-9a-jA-J]{0,1}', '[0-9a-iA-I]{0,1}', '[0-9a-dA-D]{0,1}', '[0-9a-bA-B]{0,1}', '[0-7]{0,1}', '[0-5]{0,1}', '[0-3]{0,1}', '[0-2]{0,1}', '[0-1]{0,1}']
			for j in range(0,len(n)):
				if(re.search(num[len(n)-1-j],zhengze[8-j])):
					count+=1										
				if(count==len(n)):
					n.reverse()
					jinzhi=[1,2,3,5,7,11,13,17,19]
					for i in range(0,len(n)):
						sum+=int(n[i])*cheng(int(jinzhi[i]))
					print("該火星碼對應的十進制值爲",sum)
					return 0				
				else:
					continue

if __name__ == '__main__':
	main()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章