一、字符串和字符

1、定义(str)
  • 容器:将引号做为标志。‘’、""、’‘’‘’‘、“”“”“”,里面的每个独立的文字信息就是他的元素(引号中的每个符号都是字符串的元素)
    元素:引号中的每个符号,字符串的元素又叫字符(但是‘’、""不能直接enter换行,需要转义字符。但是’‘’‘’‘、“”“”“”可以。)
  • 特点:不可变(不支持增删改);有序(支持下标操作);
2、字符
  • 在python中,只有字符的概念,没有对应的数据类型。如果需要字符用长度是1的字符串来表示。

  • 转义字符:字符串中的元素/符号/字符分为两种:有一种是普通字符,另外一种是转义字符

    • 普通字符 - 除了转义字符以外的都属于普通字符;普通字符在字符串中表示这个符号本身

    • 转义字符 - 通过\加其他字符 的形式存在,在字符串中有特殊功能或者特殊意义

    • '''
      \n 换行(LF) ,将当前位置移到下一行开头
      \t 水平制表(HT) (跳到下一个TAB位置)
      \' 代表一个单引号(撇号)字符
      \" 代表一个双引号字符
      \\ 代表一个\
      \u四位的十六进制数  表示四位16进制数作为编码值对应的字符(编码字符)
      '''s1 = 'abc\u4eff123'
      print(s1)         # abc仿123
      
3、字符编码
  • 计算机直接存储的数据只有数字,而且存的是数字的补码。
  • 文本数据不能直接存在计算机中,计算在保存文本数据的时候,存的其实是每个文本符号对应的数字(对计算机来讲,每个文本符号都会对应一个固定的数字),每一个文本符号对应的数字就是这个符号的编码值
  • 字符编码表:ASCII码表、Unicode编码表——编码表中记录了不同符号对应的编码值(每个符号和数字一一对应的关系)
    • ASCII码表:

      • 总共128个字符,每个字符对应的编码范围:0~127(只有美国人用的符号)
      • 数字在字母的前面;大写字母在小写字母的前面;大写字母和小写字母没有紧挨着
    • Unicode编码表:ASCII码表的扩展;中文编码范围:4e00 ~ 9fa5
4、编码值的使用
  • 编码字符:\u编码值

    print('\u4e00')           # 一
    print('\u9fa5')           # 龥
    print('a\u0061')          # aa    -->   61是a的16进制编码值
    print('\u096f')           # ९
    
  • chr(编码值) - 获取指定编码值对应的字符

    print(chr(0x4e00))      # 一
    print(chr(97))          # a
    print(chr(0x56ef))      # 囯
    # for x in range(0x4e00, 0x9fa5):
    #     print(chr(x), end=' ')
    # print(len(range(0x4e00, 0x9fa5+1)))
    # for x in range(0x1800, 0x18AF+1):
    #     print(chr(x), end=' ')
    # print(len(range(0x1800, 0x18AF+1)))
    
  • ord(字符) - 获取字符编码值

    print(hex(ord('b')), hex(ord('a')), hex(ord('c')))     # 0x62 0x61 0x63
    

二、获取字符

  • 字符串获取字符的语法和列表获取元素的语法一样
  • 字符串[下标]
    • 一个空格是一个字符
    • 一个转义字符是一个字符
  • 切片 - 同理于列表
  • 遍历 - 同理于列表

三、字符串相关操作

1、数学运算符:+、*
  • +:字符串1 + 字符串2 - 将两个字符串合并产生一个新的字符串

    str1 = 'abc'
    str2 = '123'
    print(str1 + str2)  # abc123name = '小明'
    age = 18
    print(name + '今年' + str(age) + '岁!')  # 小明今年18岁!
    
  • 乘法运算:字符串N/N字符串 - 字符串重复N次产生一个新的字符串

    print('hello world\t' * 100)  # 打印100次hello world
    
2、比较运算符
  • ==、!=

    print('abc' == 'abc')  # True
    print('abc' == 'acb')  # False
    
  • 大于、<、>=、<=:字符串1 > 字符串2——比较的是第一对不相等的字符的大小,两个字符比较的是编码值的大小

    print('abc' > '123456')  # True
    print('Abc' > 'abc')  # False
    
  • 比较运算符的应用:判断字符的类型

    """
    是否是数字:48 <= ord(字符) <= 57   /   '0' <= 字符 <='9'
    是否是大写字母:'A' <= 字符 <= 'Z'
    是否是小写字母:'a' <= 字符 <= 'z'
    是否是中文:'\u4e00' <= 字符 <= '\u9fa5'
    """
    print('0' <= 'a' <= '8')
    print('A' <= '字符' <= 'Z' or 'a' <= '字符' <= 'z')
    
  • 练习1:分别统计字符串中中文字符的个数和字母的个数

  • str1 = 'hsjj数据是2823竭尽所能SJJ==-2...数kkl'
    count_chinese = 0
    count_letter = 0
    for x in str1:if 'A' <= x <= 'Z' or 'a' <= x <= 'z':count_letter += 1elif '\u4e00' <= x <= '\u9fa5':count_chinese += 1
    print('中文字符的个数:', count_chinese, '字母的个数:', count_letter)  # 中文字符的个数: 8 字母的个数: 10
    
  • 练习2:判断一个字符串中是否有数字字符,有打印True, 没有打印False

    str2 = 'bans江苏省'
    str3 = '三角函数sss223=='
    for x in str2:if '0' <= x <= '9':print('True')break
    else:print('False')  # Falsefor x in str3:if '0' <= x <= '9':print('True')break
    else:print('False')  # True
    
3、in 和 not in
  • 字符 in 字符串 - 判断字符串中是否存在指定的字符

    字符串1 in 字符串2 - 判断字符串1是否是字符串2的子串

print('a' in 'abc')     # True
print('abc' in 'a1b2c3')    # False
print('abc' in '123abc')    # True
4、相关函数
  • max、min、sorted

    print(max('jskm'))      # s
    print(sorted('jskm'))   # ['j', 'k', 'm', 's']
    
  • len

    print(len('abc'))       # 3
    
  • str(数据) - 将数据转换成字符串(不可逆):所有类型的数据都可以转换为字符串;数据转换成字符串的时候,是直接在数据打印值最外层加引号

    dict1 = {1: 2, 3: 4}
    str5 = str(dict1)
    print(str5)
    print(str5[0])
    
  • eval()函数 - 将列表格式的字符串转换为列表或者将字典格式的字符串转换为字典

    print(eval(str5), type(eval(str5)))     # {1: 2, 3: 4}  <class 'dict'>
    

四、相关方法(共40个,以下只是常用方法)

1、str1.count(str2)
  • 统计字符串2在字符串1中出现的次数
str1 = 'abmssjskfsjfdd'
print(str1.count('s'))  # 4
2、str1.index(str2)
  • 查找str2第一次出现在str1中的位置,以正的下标值返回
  • 当str2不存在的时候会报错
3、str.join(序列)
  • 以指定字符串做为分隔符,将序列中所有的元素合并为一个新的字符串

  • 注意:序列中的元素必须是字符串

    list1 = ['a', 'b', 'c']
    print(str(list1))  # '['a', 'b', 'c']'result = ' '.join(list1)
    print(result)  # a b cresult = '+'.join(list1)
    print(result)  # a+b+c
    
  • 练习:[‘abc’, 120, True, 12.5] -> ‘’

    list1 = ['abc', 120, True, 12.5]
    list2 = [str(x) for x in list1]
    result = ''.join(list2)
    print(result)  # abc120True12.5
    
4、str1.replace(str2,str3)
  • str1中的str2都替换为str3

    str1 = 'abc123abd'
    print(str1.replace('a', 'A'))       # Abc123Abd
    
5、str1.split(str2)
  • 将str1中所有的str2作为切割点对字符串进行切割,返回切完后每一段对应的列表

  • 如果str2在开始或者结尾,在结果会出现一个空串

  • str1.split(str2,N) —— 将str1中的前N个str2作为切割点对字符串进行切割,返回切完后每一段对应的列表

    message = 'how are you!'
    result = message.split(' ')
    print(result, type(result))  # ['how', 'are', 'you!'] <class 'list'>print('123abcabc456'.split('abc'))  # ['123', '', '456']
    list1 = ['123', '', '456']
    
  • 删掉空串

    new_list1 = [x for x in list1 if x]
    print(new_list1)  # ['123', '456']
    

人生苦短,我学python day08 字符串相关推荐

  1. python删除文件夹无法访问_人生苦短 我学Python——anaconda和Jupyter notebook安装使用...

    一.人生苦短 我学Python 为什么学习Python? 1.应用范围广 很多网站是用Python开发的,比如豆瓣,还有YouTube等等. 2.效率高,和其他编程语言对比,可以用少得多的代码写出相同 ...

  2. 从零开始学 Python 之字符串

    从零开始学 Python 之字符串 前言 大家好,这里是「痴海」从零开始学习 Python 系列教程.此文首发于「痴海」公众号,欢迎大家去关注.学习一门语言最好的办法,就是教懂别人.在这公众号,我会从 ...

  3. 人生苦短,快学python

    最近这些年,要论成长最快的语言,自然当属Python语言. 人生苦短,我学 Python! 毫无疑问,Python就是现在最热门的语言. 从2012年到2018年,Python几乎是火箭式的成长! 让 ...

  4. 人生苦短我学python表情包_人生苦短,我学PYTHON

    写程序开心吗?开心:).真的吗?作为一个想写好程序的手残加脑抽党,经常有人劝我,你并不适合当一个程序员,但是有时候又想在并不擅长的领域疯狂试探.以前学习C的时候,在算法的狂暴洗礼后,又要消灭比代码行还 ...

  5. 人生苦短我学python表情包_Python自动生成表情包

    原标题:Python自动生成表情包 源| 创业智库文| 唐一 作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态-- ...

  6. python读取只读word只读_人生苦短我学Python——Word处理之快速Word转PDF

    上回书说到Python对于Excel的操作,本回书咱们来说一说Python对于Word的操作.这次的需求是这样的:把若干个Word文档转换为PDF格式.起因呢,是因为公司经常会披露公告.法律文件等,这 ...

  7. delphi 从字符串末尾向前查找_零基础学python之字符串

    好久不见! 我终于考完了~话不多说,接着上才艺 三引号 如果字符串跨越一行以上,就可以使用三引号(三个双引号) (这里的\n是换行符) 索引 与列表和元组一样,字符串也是可迭代的.可使用索引查找字符串 ...

  8. python excel sheet_人生苦短我学Python——Excel处理之快速创建多个Sheet并重命名

    自打Python环境准备好之后,就在跟着网上的菜鸟教程学习基本操作.基本概念.学习的过程比较乏味,因为暂时还没有成型的东西,除了感慨Python真神奇,可以打印出各种东西之外,还没能从Python中获 ...

  9. 人生苦短,我学Python(一)

    Python编程学习笔记 文章目录 Python编程学习笔记 0.0 Hello World! 1.1基础数据类型 1.1.1 变量 1.1.2 字符串 1.1.3 数字 2.1列表 2.1.1 列表 ...

最新文章

  1. Vue 前端导出后端返回的excel文件
  2. canvas学习和滤镜实现
  3. 《算法》C++代码 前言
  4. R语言第九讲 验证集法
  5. 空调恶搞工具小程序版源码下载
  6. 智慧医院建设方案_【聚焦医改】安泰创新智慧医院建设方案惊艳中国医院院长大会!...
  7. VC知识库人物专访:搜狗CEO兼任搜狐CTO王小川
  8. Java字符串排序设计(升序排列)
  9. c#调用labview实现巴特沃斯滤波器
  10. 算法设计技巧: Primal-Dual
  11. Spark worker内存不足导致任务失败,报错Likely due to containers exceeding thresholds, or network issues
  12. 基于OpenSSL,实现SM2签名数据的ASN1编码转换
  13. [转]电烙铁的使用小技巧
  14. wps 2003 给WPS设置保护眼睛的淡绿色呢?
  15. 怎么将pdf转换成word?
  16. 计算机科学与技术本科相当于计算机几级,软件工程的学生毕业后计算机等级算几级?...
  17. Android逆向之Frida
  18. C++ Test 关于Read Symbols报错的解决方法(适用于Windows 10)
  19. 云计算专业运维工程师所需要的知识技术
  20. 使用fabric.js简简单单实现一个画板

热门文章

  1. 21种设计模式理论版
  2. 2022 考研上岸中科大大数据学院一点点经验
  3. 让机器“解疑释惑”:视觉世界中的结构化理解|VALSE2018之八
  4. 做淘客你必须知道的引流技巧和套路
  5. Linux CentOS 8(磁盘设备与硬盘设备的概述与管理)
  6. 高等数学:定积分在物理学上的应用
  7. android 圆形菜单 3d效果,谷歌官方解读安卓7.1:增加类似iPhone 3D Touch功能
  8. (指针处理)有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。
  9. Java蓝桥杯 小b的宿舍
  10. 中职学校计算机实训室简介,中职学校计算机实训教学质量论文