笔记 day004 存储与字符串

Python3 的六个标准数据类型中:(内存存储问题)

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

  • 内存存储: id()

    • 栈 : 变量名, 简单类型, 复杂类型的地址,函数名,函数地址
    • 堆 : 复杂类型

字符串比较

  • a < z
  • A < Z
  • Z < a
  • 9 < A
  • 0 < 9

字符串

  • “hello” ‘hello’

  • 索引

    • 超出索引值则报错
  • 修改(不可以改变)

    • str1[3] = ‘e’ 会报错
  • len(str1)

  • min(str1)

  • max(str2)

  • 运算符:

  • in not in

  • 遍历:

  • 切片:

    • start
    • end 不包含
    • step 正值向右索引,负值向左索引。

转义字符

  • "
  • \
  • \n
  • \t

“h”:1,

字符串方法:

转换大小写

  • capitalize() 把字符串的第一个字符大写
  • upper() 转换 string 中的小写字母为大写
  • lower() 转换 string 中所有大写字符为小写.
  • swapcase() 翻转 string 中的大小写
  • title() 所有单词都是以大写开始,其余字母均为小写

字符串格式(***):

  • center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
    • 填充的宽度
    • 填充的字符
  • ljust 左对齐
  • rjust 右对齐
  • strip 截取两边指定的字符,默认为空格
    • char 截取的字符
  • lstrip 左截取
  • rstrip 右截取
  • zfill 返回指定长度的字符串,原字符串右对齐,前面填充0
    • 填充长度

查询类(*****)

  • count 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

    • 查询字符串 str
    • begin
    • end
  • find find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

    • 如果找不到,返回-1
  • rfind: 字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。

  • index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。

    • str
    • begin
    • end
  • rindex 字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回异常

  • startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

    • str
    • begin
    • end
  • endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。

判断类(***)

  • isalnum 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
  • 三个判断数字的函数的区别: https://www.runoob.com/python/att-string-isnumeric.html
  • isspace() 如果 string 中只包含空格,则返回 True,否则返回 False.

替换(******)

  • replace : 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
    -old – 将被替换的子字符串。
    • new – 新字符串,用于替换old子字符串。
    • max – 可选字符串, 替换不超过 max 次
    • 返回值: 新生成的字符串。

字符串与列表之间的转换 (*****)

  • list(str)
  • split : split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
    • str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
    • num 分割的次数
  • jion : 列表转字符串
    • 连接符
    • split 和 join 用法展示
      在这里插入图片描述

ASCII码

  • ord(‘b’)
  • chr(65)

练习

  • str1 = “we are family? Yes.”

str1[1:3]
str1[7:10]
str1[-3: -1]
str1[-3: 0]
str1[-3:]
str1[0:]
str1[:0]
str1[:3]

  • 编写程序,完成以下要求:

    • 统计字符串中,各个字符的个数
    • 比如:“hello world” 字符串统计的结果为: h:1 e:1 l:3 o:2 d:1 r:1 w:1
    • 比如:“I am,Alex,he1234llo, | ^XX” 字符串统计的结果为:
  • 打印一个菱形, 大小随意.

  • 给出任意一个字符串, 计算字符串最后一个单词的长度, 以空格,\n,和\t为分隔符.

  • 某一个字符串中,用字符串find方法:返回某一个子字符串出现的最后一个位置, 如果没有,返回-1 .

  • 有一个字符串,凡是出现"|"和 " "和 “-“和”,” 前后,就算一个单词. 计算下列字符串 str = “hello world,a|nd python or and ddd and hello hello world and python or and dd-dddd and,hello wo|rld and python or and ddd and wor-ld and py-thon or and ddd and an|d ddd and” 单词的个数

作业

  • 计算一个字符串中所有英文字母的个数. (注意有中文的情况)

  • 已知字符串 a = “aAsmr3idd4bgs7Dlsf9eAF”,要求如下

    • 1.请将a字符串的大写改为小写,小写改为大写。
      1. 请将a字符串的数字取出,并输出成一个新的字符串。
      1. 请去除a字符串多次出现的字母,仅留最先出现的一个。例 ‘abcabb’,经过去除后,输出 ‘abc’
      1. 请将a字符串反转并输出。例:’abc’的反转是’cba’
      1. 去除a字符串内的数字后,请将该字符串里的单词重新排序(a-z),并且重新输出一个排序后的字符串。(保留大小写,a与A的顺序关系为:A在a前面。例:AaBb)
      1. 请判断 ‘boy’里出现的每一个字母,是否都出现在a字符串里。如果出现,则输出True,否则,则输 出False.
      1. 要求如1.7,此时的单词判断,由’boy’改为四个,分别是 ‘boy’,’girl’,’bird’,’dirty’,请判断如上这4个字符串里的每个字母,是否都出现在a字符串里。
      1. 输出a字符串出现频率最高的字母
  • 题目描述: 英文和数字
    大家都知道手机上的字母:如果 1–1, abc–2, def–3, ghi–4, jkl–5, mno–6, pqrs–7, tuv–8 wxyz–9, 0–0,密码中没有空格。渊子把密码中出现的小写字母都变成对应的数字,而密码中出现的大写字母则变成小写之后往后移一位,如:X,先变成小写,再往后移一位,不就是y了嘛,简单吧。记住,z往后移是a哦。数字和其他的符号都不做变换。
    输入描述:
    输入包括多个测试数据。输入是一个明文
    输出描述:
    输出渊子真正的密文
    示例1:
    输入:YUANzhi1987
    输出:zvbo9441987

明文密码:helloworld
暗文密码:4355696753

明文密码:hello123AAA
暗文密码:43556123bbb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Captain_Data

打赏一下~

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

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

打赏作者

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

抵扣说明:

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

余额充值