【python--实用案例】

🚀 作者 :“码上有前”
🚀 文章简介 :Python
🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬

判断是否是罗马字母

def is_roman_numeral(s):
    pattern = r'^(M{0,3})(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$'
    return re.match(pattern, s) is not None

这段代码定义了一个函数 is_roman_numeral(s),用于判断给定的字符串 s 是否是罗马数字表示法。

该函数使用正则表达式来匹配罗马数字的模式。正则表达式模式被赋值给变量 pattern,模式中包含了不同位数的罗马数字的组合规则。

下面是模式的解释:

  • ^(M{0,3}):以 0 到 3 个 ‘M’ 开头。
  • (CM|CD|D?C{0,3}):匹配 ‘CM’、‘CD’、或者以 0 到 3 个 ‘C’ 开头的字符串(表示百位数)。
  • (XC|XL|L?X{0,3}):匹配 ‘XC’、‘XL’、或者以 0 到 3 个 ‘X’ 开头的字符串(表示十位数)。
  • (IX|IV|V?I{0,3})$:匹配 ‘IX’、‘IV’、或者以 0 到 3 个 ‘I’ 结尾的字符串(表示个位数)。

这个模式可以匹配符合罗马数字规则的字符串。如果给定的字符串 s 符合模式,即是一个合法的罗马数字表示法,那么 re.match(pattern, s) 返回一个匹配对象。函数通过检查匹配对象是否为 None 来判断字符串是否是罗马数字。如果匹配对象不为 None,表示有匹配,即字符串是一个罗马数字;如果匹配对象为 None,则表示没有匹配,即字符串不是一个罗马数字。

因此,函数 is_roman_numeral(s) 返回 True 表示给定的字符串 s 是一个罗马数字,返回 False 表示不是罗马数字。

要使用这段代码,首先需要导入 Python 的 re 模块,因为代码中使用了正则表达式。可以在代码的开头添加 import re。然后,调用 is_roman_numeral(s) 函数,将要判断的字符串作为参数传递给函数即可。

判断第一个字符串是纯正整数或者是大小写字母序列

def is_valid_string(s):
    # 正则表达式,匹配严格的正整数或字母序列
    pattern = r'^[1-9]\d*$|^[a-zA-Z]+$'
    return re.match(pattern, s) is not None

这段代码定义了一个函数 is_valid_string(s),用于判断给定的字符串 s 是否是有效的字符串。

该函数使用正则表达式来匹配字符串的模式。正则表达式模式被赋值给变量 pattern,模式中包含了两个部分:

  1. ^[1-9]\d*$:匹配严格的正整数。这个模式要求字符串以 1 到 9 之间的数字开头,后面可以跟零个或多个数字。
  2. ^[a-zA-Z]+$:匹配字母序列。这个模式要求字符串只包含大小写字母,且至少包含一个字母。

这两个模式使用了 | 运算符,表示两个模式中的任意一个都可以匹配。

函数使用 re.match(pattern, s) 来进行匹配,并返回一个匹配对象。通过检查匹配对象是否为 None,函数判断字符串是否符合模式。如果匹配对象不为 None,表示有匹配,即字符串是一个有效的字符串;如果匹配对象为 None,则表示没有匹配,即字符串不是一个有效的字符串。

因此,函数 is_valid_string(s) 返回 True 表示给定的字符串 s 是一个有效的字符串,返回 False 表示不是有效的字符串。

要使用这段代码,首先需要导入 Python 的 re 模块,因为代码中使用了正则表达式。可以在代码的开头添加 import re。然后,调用 is_valid_string(s) 函数,将要判断的字符串作为参数传递给函数即可。

判断是否有重复的字符

# 判断是否有重复的字符
def has_duplicate_chars(roman_numeral):
    seen_chars = set()
    for char in roman_numeral:
        if char in seen_chars:
            return True
        seen_chars.add(char)
    return False

这段代码定义了一个函数 has_duplicate_chars(roman_numeral),用于判断给定的罗马数字字符串 roman_numeral 是否包含重复的字符。

函数的实现逻辑如下:

  1. 创建一个空的集合 seen_chars,用于存储已经遍历过的字符。
  2. 对于罗马数字字符串 roman_numeral 中的每个字符 char,执行以下操作:
    • 检查字符 char 是否已经在集合 seen_chars 中存在。如果存在,说明该字符已经出现过,即字符串中有重复的字符,因此返回 True
    • 如果字符 char 不在集合 seen_chars 中,将其添加到集合 seen_chars 中。
  3. 如果遍历完整个字符串,没有发现重复的字符,则返回 False,表示没有重复的字符。

这种实现利用了集合的特性,集合中的元素是唯一的,因此可以快速判断一个字符是否已经存在于集合中。

判断该字符是否在字符串中出现过2次及以上

def has_multiple_characters(char, string):
    count = string.count(char)
    if count >= 2:
        return True
    else:
        return False

# 示例字符串
string1 = "hello"
string2 = "world"
string3 = "mississippi"

# 调用函数判断是否存在多个字符
result1 = has_multiple_characters('l', string1)
result2 = has_multiple_characters('o', string2)
result3 = has_multiple_characters('s', string3)

# 打印结果
print(result1)  # 输出 True
print(result2)  # 输出 False
print(result3)  # 输出 True
  1. 使用字符串的 count 方法来计算字符串 string 中字符 char 的出现次数,将结果存储在变量 count 中。
  2. 检查变量 count 的值是否大于等于 2。如果是,表示字符 char 在字符串 string 中出现了至少两次,函数返回 True 表示存在多个字符 char
  3. 如果变量 count 的值小于 2,表示字符 char 在字符串 string 中出现的次数不足两次,函数返回 False 表示不存在多个字符 char

判断字符在字符串中是否有相同字符出现,有返回所有下标

# 判断字符在字符串中是否有相同字符出现,有的话返回所有下标
def find_duplicate_indices(string):
    string = string[::-1]
    char_indices = {}  # 创建一个空字典来存储每个字符的所有出现位置
    for index, char in enumerate(string):
        if char in char_indices:
            char_indices[char].append(index)  # 如果当前字符在字典中出现过,则将当前位置添加到列表中
        else:
            char_indices[char] = [index]  # 否则,将当前字符记录到字典中并创建一个包含当前位置的列表
    
    # 筛选出重复字符的位置下标
    duplicate_indices = {char: indices for char, indices in char_indices.items() if len(indices) > 1}
    
    return duplicate_indices if duplicate_indices else False  # 如果没有重复字符,则返回 None

判断是否有重复3次及以上的字符

# 判断是否有重复3次及以上的字符
def has_duplicate(string):
    char_count = {}  # 创建一个空字典来存储每个字符的出现次数
    for char in string:
        if char in char_count:
            char_count[char] += 1
        else:
            char_count[char] = 1
    
    # 检查是否有字符出现三次及以上
    for count in char_count.values():
        if count >= 3:
            return True  # 存在重复三次及以上的字符
    return False  # 不存在重复三次及以上的字符

判断要给字符是否是字典某个键对应的值

# 判断要给字符是否是字典某个键对应的值
def is_value_of_key(char, dictionary):
    values = dictionary.values()
    if char in values:
        return True
    else:
        return False
  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上有前

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值