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 : 列表转字符串
- 连接符
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”,要求如下
- 请将a字符串的大写改为小写,小写改为大写。
- 请将a字符串的数字取出,并输出成一个新的字符串。
- 请去除a字符串多次出现的字母,仅留最先出现的一个。例 ‘abcabb’,经过去除后,输出 ‘abc’
- 请将a字符串反转并输出。例:’abc’的反转是’cba’
- 去除a字符串内的数字后,请将该字符串里的单词重新排序(a-z),并且重新输出一个排序后的字符串。(保留大小写,a与A的顺序关系为:A在a前面。例:AaBb)
- 请判断 ‘boy’里出现的每一个字母,是否都出现在a字符串里。如果出现,则输出True,否则,则输 出False.
- 要求如1.7,此时的单词判断,由’boy’改为四个,分别是 ‘boy’,’girl’,’bird’,’dirty’,请判断如上这4个字符串里的每个字母,是否都出现在a字符串里。
- 输出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