当前位置: 首页 > news >正文

Python 字符串详解

一、字符串概念

      用于保存字符信息的数据模型(容器)。

      1、只能存放一个值

      2、不可变类型

      3、有序,索引从0开始顺序访问

字符串语法格式:

str1 = “字符串信息”

str2 =  '字符串信息'

str3 = '' '' ''字符串信息'' '' ''

str4 =  ''' 字符串信息 '''

二、字符串常用操作 

 1、字符串判定

 2、字符串查找和替换

3、字符串拆分与连接 

4、 字符串数据转换

 5、字符串格式转换

6、字符串切片

三、字符串应用 

1、  输入字符串"https://blog.51cto.com/u_12139097/2573782",输出以下结果:
    1) 字符串中字母t出现的次数。
    2) 字符中"com"子串出现的位置。
    3) 将字符串中所有的"."替换为"-"。
    4) 提取"log"使用正向和"to"反向取两个子串。
    5) 将字符串中的字母全变为大写。
    6) 输出字符串的总字符个数。
    7) 在字符串后拼接子串"/yes"

'''
    1. 输入字符串"https://blog.51cto.com/u_12139097/2573782",输出以下结果:
    1) 字符串中字母t出现的次数。
    2) 字符中"com"子串出现的位置。
    3) 将字符串中所有的"."替换为"-"。
    4) 提取"log"使用正向和"to"反向取两个子串。
    5) 将字符串中的字母全变为大写。
    6) 输出字符串的总字符个数。
    7) 在字符串后拼接子串"/yes"
    :return:
    '''
    ss='https://blog.51cto.com/u_12139097/2573782'
    #    1) 字符串中字母t出现的次数。
    print(ss.count('t'))
    #     2) 字符中"com"子串出现的位置。
    print(ss.find('com'))
    #     3) 将字符串中所有的"."替换为"-"。
    print(ss.replace('.','-'))
    #     4)  提取"log"使用正向和"to"反向取两个子串。
    print(ss[9:12],ss[-26:-23])
    #     5) 将字符串中的字母全变为大写。
    print(ss.upper())
    #     6) 输出字符串的总字符个数。
    print(len(ss))
    #     7) 在字符串后拼接子串"/yes"
    print(ss+'/yes')

  

 2、学号#姓名#分数,如字符串: "1001#张帆#75-1002#羽田#90-1003#李鑫#85",
     提取学生信息存放于列表中,并按照成绩对学生降序排序。

'''
     学号#姓名#分数,如字符串: "1001#张帆#75-1002#羽田#90-1003#李鑫#85",
     提取学生信息存放于列表中,并按照成绩对学生降序排序。
    :return:
    '''
    data = "1001#张帆#75-1002#羽田#90-1003#李鑫#85"
    stu_list = []
    for info in data.split('-'):
        stu = info.split("#")
        print(stu)
        #添加到列表中
        stu_list.append(dict(zip(["学号", "姓名", "分数"], stu)))
    #降序排序
    stu_list.sort(reverse=True, key=lambda x: x["分数"])
    print(stu_list)

 

 3、 随机产生验证码 (数字+字母组合 6个)
       如:A8VPai

'''
    # 随机产生验证码 (数字+字母组合 6个)
    # 如:A8VPai
    :return:
    '''
    #大小字母组合
    s=string.ascii_letters

    # 保存产生的随机数
    save_code =''
    #循环6个
    for i in range(6):
       # 随机产生(0-5)6个数
       num=random.randint(0,5)
       #判断不等,就随机产生字母
       if i!=num:
           tmp=random.choice(s) #产生字母
       else:
           tmp=random.randint(0,9) #产生数字
       #保存生成数据
       save_code += str(tmp)

    else:
        print(save_code)

 

 4、输入用户名是否合法,用户名必须有数字和字母组成,并且第一个字符是大写字母

       例如,输入:boy80youare52right,输出 不合法! 输入:Boy80youare, 输出 合法!

 '''
    输入用户名是否合法,用户名必须有数字和字母组成,并且第一个字符是大写字母
    例如,输入:boy80youare52right,输出 不合法! 输入:Boy80youare, 输出 合法!
    :return:
    '''
    s = input('输入用户名字符串:')
    #统计个数
    s_letter=0
    s_number=0
    #判断第一个字符是大写字母
    if s[0].isupper():
        # 循环
        for i in s:
            # 判断
            if i in string.ascii_letters:
                s_letter += 1
            elif i in string.digits:
                s_number += 1
        #判断是否是数子和字母组合
        if s_number==0 or s_letter+s_number!=len(s):
            print('用户名不合法!')
        else:
            print('合法!')
    else:
        print('用户名不合法!')

5、输入字符串,并获取字符串中汉字的个数。

      例如:输入:hello展示有几个few汉字 输出:hello展示有几个few汉字的汉字个数:7

       提示:汉字在这个范围内(大于等于\u4e00,小于等于\u9fa5)

 '''
    输入字符串,获取字符串中汉字的个数;
    例如:输入:hello展示有几个few汉字 输出:hello展示有几个few汉字的汉字个数:7
    提示:汉字在这个范围内(大于等于\u4e00,小于等于\u9fa5)
    :return:
    '''
    info=input('输入字符串:')
    c=0 #统计个数
    #循环
    for i in info:
        #判断
         if i >='\u4e00'and i<='\u9fa5':
             c+=1  #累计次数
    print(f'{info}的汉字个数:{c}')

 

 

 6、 输入一句英文字符串,单词之间以空格为分隔符, 并且不包含,和.>;统计每个单词重复的单词出现的次数

      输入: “hello java hello python”

      输出:

       hello 2

       java 1

       python 1

 '''
        输入一句英文字符串,单词之间以空格为分隔符, 并且不包含,和.>;统计每个单词重复的单词出现的次数
      输入: “hello java hello python”
      输出:
        hello 2
        java 1
        python 1
    '''
    strs=input('输入一句英文句子:')
    #字符串空格分割
    ll=strs.split(" ")
    #空字典
    word={}
    #循环
    for i in ll:
        # print(i)
        #判断不在字典中
        if i not in word:
            word[i]=1
        else: #存入加1
            word[i]+=1
    # print(word)
    for k,v in word.items():
        print(k,v)

 

 

相关文章:

  • bprc二次封装
  • Istio:微服务网格的强大工具,Istio介绍
  • 上海泗博EtherNet/IP转PROFIBUS DP网关EPS-320IP成都地铁项目应用案例
  • CSS---序号使用css设置,counter-reset、counter-increment、content配合实现备注文案的序号展示
  • 文献多\bibliographystyle和文献少\begin{thebibliography}
  • Linux 防火墙:iptables (二)
  • Spring-Cloud-Gateway集成Sentinel限流
  • C++ 网络编程学习二
  • 1 开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程
  • 技术社区项目—借助Logback 的扩展机制实现异常感知并进行邮件推送异常信息
  • C++——二叉搜索树
  • 【C语言基础】:操作符详解(一)
  • MATLAB改变默认工作路径
  • 如何找回删除的文件?数据恢复,看这几个方法
  • 从三层架构说起,谈谈对历史项目的小改造
  • wordpress的手工迁移
  • wy的leetcode刷题记录_Day47
  • SSM框架-Spring(二)
  • Kotlin 开发Android app(九):Android两大布局LinearLayout和RelativeLayout
  • A-Level经济例题解析及练习Budget Constraint
  • docker-compose 安装 Prometheus + Grafana 配置监控页面
  • 高项 风险管理论文
  • 【图像融合】基于DSIFT多聚焦图像融合附matlab代码
  • SOLIDWORKS 2023 3D Creator 云端结构设计新功能
  • Day09--全局事件共享-在页面中使用store中的成员
  • SpringCloud整合Nacos最全教程(简介及安装部署整合)
  • STM32开发时HardFault错误的排查
  • conda创建虚拟环境命令、jupyter notebook启动打开和使用
  • C++基础知识
  • csdn月入过万的作者是如何练成的?
  • Linux实现文件定期本地备份/异地备份/删除备份的脚本
  • 掌握这十个Linux命令,秒变Linux老手