返回顶部
首页 > 资讯 > 后端开发 > Python >Python练习【3】【罗马数字转换/查
  • 195
分享到

Python练习【3】【罗马数字转换/查

罗马数字Python 2023-01-31 07:01:32 195人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

题目1:罗马数字转换 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M字符 数值I 1V 5X 10L 50

题目1:罗马数字转换

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M
字符 数值
I 1
V 5
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。这个规则只适用于以下六种情况:
    I 可以放在 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 and III = 3.
示例 5:
输入: “MCMXCIV”
输出: 1994
解释: M = 1000, CM = 900, XC = 90 and IV = 4.


编程思路:

罗马数字一般来说小数在大数后面,各数字译成对应十进制相加即可
若小数在大数前面,则取对应的小数的相反数相加即可
例:
IV=-1+5=4
CM=-100+1000=900:
MCMXCIV=1000-100+1000-10+100-1+5=1994


代码:

罗马数字转十进制数函数:

def roman_into_decimal(roman_num):      ##罗马数字转十进制数函数
for i in roman_num:
if i not in roman:
print('请输入正确的罗马数字')
return
## 遍历输入字符串,判断是否为正确的罗马数字,不是则提示并返回None
num = 0
reduce = [roman_num[i] for i in range(len(roman_num) - 1) if roman[roman_num[i]] < roman[roman_num[i + 1]]]
## 判断逆序的组合,并将逆序的首字母存入列表reduce
for i in roman_num:
num += (-roman[reduce.pop(reduce.index(i))]) if i in reduce else roman[i]
##  遍历输入的字符串,如果reduce中包含对应key值,则从reduce中弹出(去重)并减去对应value值
if 1<=num<=3999:
print('对应十进制数:', num)  ## 输出对应10进制数
else:
print('超出范围,请输入转换值在1-3999之间的数')

主程序:

roman = dict(I=1, V=5, X=10, L=50, C=100, D=500, M=1000) ## 定义基本罗马数字
while True:
        roman_in = input('请输入转换值在1-3999之间的罗马数字:')
        roman_into_decimal(roman_in)  ##调用函数

测试结果:

Python练习【3】【罗马数字转换/查找公共前缀】
Python练习【3】【罗马数字转换/查找公共前缀】


题目2:公共前缀

编写一个函数来查找字符串数组中的最长公共前缀
如果不存在最长公共前缀,返回空字符串 ''

  • 说明:所有输入只包含小写字母 a-z

示例 1:
输入: [“flower”,”flow”,”flight”]
输出: “fl”
示例 2:
输入: [“dog”,”racecar”,”car”]
输出: “”
解释: 输入不存在最长公共前缀


代码:

寻找公共前缀函数:

def find_public_pro(string):  ##寻找公共前缀函数
public_pro=''  ##定义空字符串用于接收公共字符
for i in range(min([len(i) for i in string])):  ##循环次数最长为最短字符串长度
for j in range(len(string)-1):
if string[j][i]!=string[j+1][i]:
return public_pro
##从首字母开始所有字符串同一位置出现字符不相等时返回public_pro
else:
public_pro=public_pro+string[0][i]
##从首字母开始所有字符串同一位置字符相等时,将该字符放入public_pro
else:
return public_pro
##for循环完毕说明最短字符串即为公共前缀,返回公共前缀

主程序:

while True:  ##死循环
        try:
                string_in=input('请输入字符串数组(仅包含小写字母):\n例:["flower","flow","flight"]').replace('"','').strip('[').strip(']').replace(',',' ')
                ##以规定格式输入时,去除字符串中无用的[]",等字符
                if not string_in.replace(' ','').islower():
                        print('请输入正确的字符串数组(仅包含小写字母)')
                        continue
                        ##如果字符串不是纯小写字母,提示并刷新
                string_in=string_in.split(' ')  ##以空格分隔字符串为列表
                print(find_public_pro(string_in))
        except Exception as e:
                print('程序异常')
                ##程序异常提示,捕获程序退出相关以外的所有异常
        finally:
                if bool(input('按下Enter键继续')):
                        pass
                ##无论是否异常,都通过键盘暂停,防止页面刷新以便观察结果

测试结果:

Python练习【3】【罗马数字转换/查找公共前缀】
Python练习【3】【罗马数字转换/查找公共前缀】Python练习【3】【罗马数字转换/查找公共前缀】


python3中默认汉字属于字母类,但其中壹/一等字属于数字

--结束END--

本文标题: Python练习【3】【罗马数字转换/查

本文链接: https://lsjlt.com/news/191181.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python练习【3】【罗马数字转换/查
    题目1:罗马数字转换 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M字符 数值I 1V 5X 10L 50...
    99+
    2023-01-31
    罗马数字 Python
  • 20190502-罗马数字转换为数字
    题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符          数值 I             1 V             5 X             10 L             50...
    99+
    2023-01-31
    罗马数字 转换为 数字
  • 罗马数字与阿拉伯数字转换
    罗马数字与阿拉伯数字对应关系如下: 且“II”表示2,“III”表示3,“IV”表示4,“VI表示6”,“VII”表示7,“VIII”表示8,“IX”表示9,其余的类似。 阿拉伯数转换成罗马数字 class Solution(obje...
    99+
    2023-01-31
    罗马数字 阿拉伯数字
  • Python实现将罗马数字转换成普通阿拉伯数字的方法
    本文实例讲述了Python实现将罗马数字转换成普通阿拉伯数字的方法。分享给大家供大家参考,具体如下: 罗马数字,我们在某些电视中或者现实生活中都曾经看到过,近日,学习Python时,也遇到了罗马数字的解说,...
    99+
    2022-06-04
    罗马数字 阿拉伯数字 转换成
  • C#算法之罗马数字转整数
    罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I ...
    99+
    2024-04-02
  • C++实现将整数转化成罗马数字
    本篇内容介绍了“C++实现将整数转化成罗马数字”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Integer to Roman 整数转化成罗马...
    99+
    2023-06-20
  • python学习笔记3:转义字符
    本文列出python中的转义字符,以方便项目参考 转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \00...
    99+
    2023-01-31
    学习笔记 字符 python
  • python 练习题之【数字排序】
    今天linux技术圈的逗哥出了道题,题目很简单 要求: 2 9 5 7 6 1 4 8 3 5 4 2 求每行的最大值 最近刚好在学习python,感觉py也可以做出来。   #!/usr/bin/env pytho...
    99+
    2023-01-31
    练习题 数字 python
  • C++实现LeetCode(12.整数转化成罗马数字)
    [LeetCode] 12. Integer to Roman 整数转化成罗马数字 Roman numerals are represented by seven different...
    99+
    2024-04-02
  • C++实现LeetCode(13.罗马数字转化成整数)
    [LeetCode] 13. Roman to Integer 罗马数字转化成整数 Roman numerals are represented by seven different...
    99+
    2024-04-02
  • C++怎么实现罗马数字转化成整数
    本篇内容介绍了“C++怎么实现罗马数字转化成整数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Roman to Integer 罗马数字转化...
    99+
    2023-06-20
  • python学习之字符串转换
    配置环境:python 3.6   python编辑器:pycharm 代码如下: #!/usr/bin/env python #-*- coding: utf-8 -*- def strCase(): "字符串大小写转换" ...
    99+
    2023-01-30
    字符串 python
  • python学习3-内置数据结构3-字符
    字符串是集合类型1、定义s = 'hello python's = "hellp python"以上2种没有区别s = '''hello python'''s = """hello python"""以上2种没有区别区别在于三引号可以定义多...
    99+
    2023-01-31
    数据结构 字符 python
  • python-练习实现猜数字的循环
    目录:input:输入print:输出int:整数型if循环:如果elif:或者else:否则break:结束本次循环python语言是从上到下一句一句执行的。代码部分:#!/usr/bin/env python # -*- coding:...
    99+
    2023-01-31
    数字 python
  • Python 如何将integer转化为罗马数(3999以内)
    1,在Python中将integer数转化为罗马数 说明:在罗马数中(3999以内),和阿拉伯数字相似,可以把它分解为个位,十位,百位,千位,然后相加(我是这么认为的+_+),所以这样就简单了,只需把不同位数的基数表...
    99+
    2022-06-02
    Python integer 转化为罗马数
  • python数据类型转换 python字
    原文地址为:python数据类型转换 python字符串转浮点数 python字符串转float  转载 http://www.cnblogs.com...
    99+
    2023-01-31
    数据类型 python
  • Python学习-字符串函数操作3
    字符串函数操作 isprintable():判断一个字符串中所有字符是否都是可打印字符的. 与isspace()函数很相似 如果字符串中的所有字符都是可打印的字符或字符串为空返回 True,否则返回 False str1 = ...
    99+
    2023-01-30
    字符串 函数 操作
  • 用python把数字转换成字母
    方法一(普通方法): # -*- coding: utf-8 -*- #把数字转换成相应的字符,1-->'A' 27-->'AA' def changeNumToChar(toSmallChar=None, to...
    99+
    2023-01-31
    转换成 字母 数字
  • python字符串怎么转换为数字
    要将一个字符串转换为数字,可以使用以下方法: 使用`int()`函数将字符串转换为整数。例如:`num = int("123")...
    99+
    2023-10-25
    python
  • Python划分数组为连续数字集合的练习
    目录1、问题描述2、解决方案3、结语本文转自微信公众号:"算法与编程之美" 1、问题描述 给你一个整数数组 nums 和一个正整数 k,请你判断是否可以把这个数组划分成一些由 k 个...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作