中文数字转换成阿拉伯数字python,罗马数字转换为阿拉伯数字

  中文数字转换成阿拉伯数字python,罗马数字转换为阿拉伯数字

  主题1:罗马数字转换

  罗马数字包含以下七个字符:I、V、X、L、C、D和m。

  字符数值

  我1

  第五版

  X 10

  L 50

  C 100

  D 500

  M 1000

  比如罗马数字2写成II,就是把两个并排放置的1,12写成XII,也就是X II,27写成XXVII,也就是XX V II。

  在罗马数字中,小数字在大数字的右边。4但是不要写IIII,要写IV。数字1在数字5的左边,所表示的数字等于通过减少大数的个数而得到的数字4。类似地,数字9表示为IX。这条规则只适用于以下六种情况:

  我可以放在V (5)和X (10)的左边代表4和9。

  x可以放在L (50)和C (100)的左边,代表40和90。

  c可以放在D (500)和M (1000)的左边,分别代表400和900。

  给定一个罗马数字,将其转换为整数。确保输入在1到3999的范围内。

  示例:

  示例1:

  输入:“III”

  输出:3

  示例2:

  输入:“IV”

  输出:4

  示例3:

  输入:“IX”

  产出:9

  示例4:

  输入:“LVIII”

  产量:58

  解释:C=100,L=50,XXX=30,III=3。

  示例5:

  输入:“MCMXCIV”

  产量:1994年

  解释:M=1000,CM=900,XC=90,IV=4。

  编程思路:

  一般来说,罗马数字的小数在大数之后,每个数字都可以翻译成相应的十进制,加在一起。

  如果小数在大数前面,可以加上对应小数的相反数。

  #示例:

  IV=-1 5=4

  CM=-100 1000=900:

  MCMXCIV=1000-100 1000-10 100-1 5=1994

  代码:

  罗马数字到十进制数字的函数:

  Roman _ into _ decimal(Roman _ num):# #罗马数字到十进制数字的函数

  对于罗马数字中的I:

  如果我不是罗马人:

  打印(“请输入正确的罗马数字”)

  返回

  遍历输入字符串以确定它是否是正确的罗马数字;如果没有,则提示并返回None。

  数量=0

  reduce=[Roman _ num[I]for I in range(len(Roman _ num)-1)if Roman[Roman _ num[I]]Roman[Roman _ num[I 1]]]

  逆序判断组合,将第一个字母逆序存储在列表reduce中。

  对于罗马数字中的I:

  num=(-Roman[reduce . pop(reduce . index(I))])if I in reduce else Roman[I]

  遍历输入字符串,如果reduce包含相应的键值,则将其弹出reduce(已删除重复项)并减去相应的value值。

  如果1=数字=3999:

  打印(对应于十进制数:,num) # #输出对应于十进制数

  否则:

  打印(“超出范围,请输入一个转换值在1-3999之间的数字”)

  主程序:

  Roman=dict (I=1,V=5,X=10,L=50,C=100,D=500,M=1000) # #定义基本的罗马数字

  虽然正确:

  Roman _ in=input(请输入转换值在1到3999之间的罗马数字:)

  Roman_into_decimal(roman_in) ##调用函数

  测试结果:

  主题2:公共前缀

  写一个函数来寻找字符串数组中最长的公共前缀。

  如果最长的公共前缀不存在,则返回空字符串“”。

  注意:所有输入只包含小写字母A-Z。

  示例1:

  输入:["花","流","飞行"]

  输出:“fl”

  示例2:

  输入:["狗","赛车","汽车"]

  输出: ""

  解释:输入中不存在最长的公共前缀。

  代码:

  找到一个常见的前缀函数:

  Def _ public _ pro (string): # #求公共前缀函数

  Public _ pro= # #定义一个空字符串来接收公共字符。

  for I in range(min([len(I)for I in string]): # #最长的循环数是最短的字符串长度。

  对于范围内的j(len(string)-1):

  if string[j][i]!=string[j 1][i]:

  返回public_pro

  # #当从第一个字母开始相同位置的所有字符串都有不相等的字符时,返回public_pro。

  否则:

  public _ pro=public _ pro string[0][I]

  # #当从第一个字母开始所有字符串相同位置的字符相等时,将该字符放入public_pro。

  否则:

  返回public_pro

  # #表示循环完成,表示最短的字符串是公共前缀,返回公共前缀。

  主程序:

  While True: ##无限循环

  尝试:

  String _ in=input(请输入字符串数组(仅小写字母):\ n例如:[flower , flow , flight])。替换(, )。strip ([)。条带(])。替换

  # #删除无用字符,如[]等。以规定格式输入时从字符串中提取。

  if not string_in.replace( , )。islower():

  Print(请输入正确的字符串数组(仅小写字母))

  继续

  # #如果字符串不是纯小写,则提示并刷新

  string _ in=string _ in . split()# #列出由空格分隔的字符串

  print(find _ public _ pro(string _ in))

  例外情况为e:

  打印(“程序异常”)

  # #程序异常提示,捕捉除与程序退出相关的异常之外的所有异常。

  最后:

  If bool(输入(回车继续):

  及格

  # #无论是否异常,通过键盘暂停,防止页面刷新以便观察结果。

  测试结果:

  在python3中,默认的汉字属于字母类,但一/一类字符属于数字。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: