字符串_代码练习题



# ---------------------------------------------
if __name__ == '__main__':
    i = input("请输入练习题序号[1-5]:").strip()
    # 1、
    # 输入用户信息:
    #
    #         提示用户输入姓名,对输入的内容进行判断,
    # 如果输入中包含数字或特殊符号,提示用户输入不正确,请重新输入。
    #
    #         如果输入正确,提示用户"您输入的用户名为:xxx"
    #
    #         提示用户输入年龄,如果输入是 0--100 岁之间的数字,
    # 提示用户,您输入的年龄为XX 岁,
    # 否则提示用户,您输入的有误,请重新输入
    if i == '1':
        while True:
            # 输入时, 去除两边的空格, 用户可能会多输入空格
            name_str = input("请输入姓名:").strip()

            # 循环取出姓名中的每一位字符
            for one_str in name_str:
                # 对这个字符进行判断
                # 当这个字符 是数字时:
                if one_str.isdigit():
                    print("输入中包含数字,输入不正确,请重新输入")
                    break
                # 判断不是中文 并且 不是字母时
                if (not (u'\u4e00' <= one_str <= u'\u9fff')) and (not one_str.isalpha()):
                    print("输入中包含或特殊符号,输入不正确,请重新输入")
                    break
            # 用户输入正确, 没有出现数字和特殊字符
            else:
                print("您输入的用户名为:{}".format(name_str))
                # 退出while循环
                break

        while True:
            age_str = input("请输入年龄:").strip()
            # 当输入不是数字时:
            if not age_str.isdigit():
                print("您输入的有误,输入非数字, 请重新输入")
            # 当输入是数字时, 转换成int类型
            else:
                age_int = int(age_str)
                # 输入有误,数字年龄范围有误
                if age_int <= 0 or age_int > 100:
                    print("您输入的有误,数字年龄范围有误, 请重新输入")
                else:
                    print("您输入的年龄为: {}岁".format(age_int))
                    # 退出while循环
                    break
    # ---------------------------------------------
    # 2、
    # 字符串处理:
    #
    #         现有字符串 msg = "hello python ni hao"
    # 将其中所有的空格改为下划线,得到新字符串:"hello_python_ni_hao"
    #
    #         现有字符串 msg = "hello python ni hao"
    # 统计字符串"o" 出现的次数和位置
    #
    #         现有字符串 msg = "hello python ni hao"
    # 删除字符串中所有的空格,并打印结果:"hellopythonnihao"
    elif i == '2':
        msg = "hello python ni hao"
        new_msg = msg.replace(" ", "_")
        print(new_msg)

        print("o出现的次数是: {}".format(msg.count('o')))
        # 统计o出现的次数
        count_set = set()
        for idx in range(len(msg)):
            count_num = msg.find("o", idx)
            count_set.add(count_num)
        # 将集合转成列表 好进行排序
        count_list = list(count_set)
        count_list.sort()
        print("o出现的位置是: {}".format(count_list))
        # 删除字符串中所有的空格,并打印结果
        print(msg.replace(" ", ""))

    # ---------------------------------------------
    # 3、
    # 现有列表 name_list = ["tom","zhangsan","lisi"],
    # 根据列表内容生成字符串:"tomzhangsanlisi"
    elif i == '3':
        name_list = ["tom", "zhangsan", "lisi"]
        print("".join(name_list))

    # ---------------------------------------------

    # 4、
    # 使用字符串切片练习:
    #
    #         现在有字符串:msg = "0123456789"
    #
    #             1. 截取从 2 ~ 5 位置 的字符串
    #
    #             2. 截取从 2 ~ 末尾 的字符串
    #
    #             3. 截取从 开始 ~ 5 位置 的字符串
    #
    #             4. 截取完整的字符串
    #
    #             5. 从开始位置,每隔一个字符截取字符串
    #
    #             6. 从索引 1 开始,每隔一个取一个
    #
    #             7. 截取从 2 ~ 末尾 的字符串
    #
    #             8. 截取字符串末尾两个字符
    #
    #             9. 字符串的逆序
    elif i == '4':
        msg = "0123456789"
        # 1. 截取从 2 ~ 5 位置 的字符串
        print(msg[2:6])
        # 2. 截取从 2 ~ 末尾 的字符串
        print(msg[2:])
        # 3. 截取从 开始 ~ 5 位置 的字符串
        print(msg[:6])
        # 4. 截取完整的字符串
        print(msg[:])
        # 5. 从开始位置,每隔一个字符截取字符串
        print(msg[::2])
        # 6. 从索引 1 开始,每隔一个取一个
        print(msg[1::2])
        # 7. 截取从 2 ~ 末尾 的字符串
        print(msg[2:])
        # 8. 截取字符串末尾两个字符
        print(msg[-2:])
        # 8. 字符串的逆序
        print(msg[::-1])

    # ---------------------------------------------
    # 5、
    # 字符串清理:
    #
    #  现有字符串 msg = "hel@#$lo pyt \nhon ni\t hao%$" ,
    # 去掉所有不是英文字母的字符,
    # 打印结果:"清理以后的结果为:hellopythonnihao
    elif i == '5':
        msg = "hel@#$lo pyt \nhon ni\t hao%$"
        msg_list = list()
        # 遍历msg字符串
        for single_one in msg:
            # 当前是字母时, 添加到列表里
            if single_one.isalpha():
                msg_list.append(single_one)
        print("清理以后的结果为:{}".format("".join(msg_list)))

        'abc'.index('c')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值