【Python】字符串

1.   字符串读取、拼接、匹配、随机生成

2.    ‘’.join()连接字符串

3.    使用了random随机函数

4.    字符串列表里面使用判断语句调用函数


1、输入一个字符串,将该字符串中下标为偶数的字符组成新串并通过字符串格式化方式显示。

def get_even_indexed_chars(s):
    # 使用列表推导式获取下标为偶数的字符
    even_indexed_chars = [s[i] for i in range(len(s)) if i % 2 == 0]

    # 使用join方法将列表中的字符连接成字符串
    even_indexed_str = ''.join(even_indexed_chars)

    # 使用字符串格式化方式显示结果
    formatted_str = "下标为偶数的字符组成的新串是: {}".format(even_indexed_str)
    return formatted_str


# 测试函数
input_str = "Hello, World!"
print(get_even_indexed_chars(input_str))

2、编写程序,生成一个由15个不重复的大小写字母组成的列表。

import random
import string


def generate_unique_letters_list(num_letters=15):
    # 创建一个包含所有大小写字母的集合
    all_letters = set(string.ascii_letters)

    # 如果要生成的字母数量超过了集合中的字母总数,则抛出异常
    if num_letters > len(all_letters):
        raise ValueError("Cannot generate a list with more unique letters than available in the set of all letters.")

        # 从集合中随机选择指定数量的字母,并转换为列表
    unique_letters_list = random.sample(all_letters, num_letters)

    return unique_letters_list

unique_letters_list = generate_unique_letters_list()
print(unique_letters_list)

3、给定字符串"site sea suede sweet see kase sse ssee loses",匹配出所有以s开头、e结尾的单词。

import re

# 给定的字符串
s = "site sea suede sweet see kase sse ssee loses"

# 使用正则表达式匹配以's'开头并以'e'结尾的单词
matches = re.findall(r'\bs\w*e\b', s)

# 打印所有匹配的单词
for match in matches:
    print(match)

4、生成15个包括10个字符的随机密码,密码中的字符只能由大小写字母、数字和特殊字符“@”“$ ”“#”“&”“ ”“~”构成。

import random
import string

# 定义字符集
characters = string.ascii_letters + string.digits + '@$#~& '


# 生成随机密码的函数
def generate_password(length):
    return ''.join(random.choice(characters) for i in range(length))


# 生成15个包含10个字符的随机密码
passwords = [generate_password(10) for _ in range(15)]

# 打印密码
for i, password in enumerate(passwords, 1):
    print(f"密码{i}: {password}")

5、给定列表x=["13915556234","13025621456","15325645124","15202362459"].检查列表中的元素是否为移动手机号码,这里移动手机号码的规则是:手机号码共11位数字;以 13开头,后面跟4、5、6、7、8、9中的某一个;或者以15开头,后面跟0、1、2、8、9中的某一个。


def is_mobile_phone_number(number):
    # 校验手机号码长度是否为11位
    if len(number) != 11:
        return False

        # 校验手机号码是否只包含数字
    if not number.isdigit():
        return False

        # 提取手机号码的前两位
    prefix = number[:2]

    # 校验手机号码前缀
    if prefix == '13' and number[2] in '456789':
        return True
    elif prefix == '15' and number[2] in '01289':
        return True
    else:
        return False

    # 给定的手机号码列表


x = ["13915556234", "13025621456", "15325645124", "15202362459", "15302362459"]

# 检查结果
valid_numbers = [num for num in x if is_mobile_phone_number(num)]
invalid_numbers = [num for num in x if not is_mobile_phone_number(num)]

print("有效手机号码:", valid_numbers)
print("无效手机号码:", invalid_numbers)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

曦樂~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值