小甲鱼-python 函数练习

文章介绍了Python的enumerate方法在遍历列表时获取索引和元素的便捷用法,并提供了两个实践示例:将罗马字符转换为数字以及将数字转换为罗马字符。转换过程中涉及条件判断和字符串操作。
摘要由CSDN通过智能技术生成

enumerate( ) 方法 可以获取列表中的索引和元素

 

# 1. 获取列表的索引和元素 原始方法
s = [1,2,3,4]
for i in range(len(s)):
    print(i,s[i]) 

# 2. 使用enumerate()方法 简单方便
s = [1,2,3,4]
for index , item in enumerate(s):
    print(index,item)

练习一:把罗马字符转换为数字

R2N ={'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000}
# 参数为用户输入的字符串
def roman2num(s):
    # 定义一个变量存放 值
    r = 0
    n = len(s)
    # enumerate 可以获取列表的索引和元素
    for i,ch in enumerate(s):
        v = R2N[ch]
        #如果不是最后一位并且当前的数值比后一位的数值小的时候,就采用减
        if i < n-1 and v < R2N[s[i+1]]:
            r -= v
        else:
            r += v
    return r
s = input("请输入一个罗马字符")
v = roman2num(s)
print(f"转换的结果是:{v}")

练习二:把数字转换为罗马字符

 "".join( )

语法:

'delimiter'.join(seq)

  • delimiter:分隔符。可以为空。
  • delimiter:要连接的元素序列、字符串、元组、字典。

作用:

        将一个字符串数组或集合中的元素连接成一个字符串。它可以指定连接符,也可以指定起始和结束位置。

 注意:N2R中的元素需要从大到小排序,后面方法中可以按顺序比较​​​​​​​​​​​​​​

#  从大大小排列进去
N2R = [
    (1000, "M"),
    (900, "CM"),
    (500, "D"),
    (400, "CD"),
    (100, "C"),
    (90, "XC"),
    (50, "L"),
    (40, "XL"),
    (10, "X"),
    (9, "IX"),
    (5, "V"),
    (4, "IV"),
    (1, "I"),
]
def num2roman(num):
    r = []
    # 获取N2R中的值和对应的值
    for v,s in N2R:
        # 如果num = 67时  满足条件的v = 50,然后数组r中添加 v对应的s
        while num >= v:
            num -= v
            r.append(s)
        # 当num = 0时,跳出循环
        if num == 0 :
            break
    return "".join(r)
n = input("请输入一个整数:")
res = num2roman(int(n))
print(f"转换后的结果是:{res}")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值