第五天

                 数据类型

之前的都介绍过,这里只说复数类型:complex(实部,虚部)

 

num = complex(5, 4)  # 5 + 4j
print(num + (4 + 5j)→9 + 9j

字符串类型
s1 = "你是\"好学生\""
print(s1)→你是"好学生"
s2 = '你是"你是好学生"' #引号的嵌套
print(s2)→你是"好学生"
s3 = """你是"好学生", 是'我的'"""
print(s3)→你是"好学生", 是'我的'

常规操作(重点)
1.字符串的索引取值:字符串[index](正向取值从0编号,反向取值从-1编号)
s1 = '123abc呵呵'

print(s1[0])→1
t_m = '1'
print(id(t_m)) == id(s1[0])→True #优化机制,字符串相同则地址相同

2.字符串拼接
s2 = '你好’
s3 = '帅'
s23 = s2 + s3
print(s23)→你好帅

如果要拼接其他类型
a = 10
b = "20"
c = True
①res = "%s%s%s % (a,b,c)
print(res)→1020True #通用
②res = str(a) + b + str(c)
print(res)→1020True

3.字符串长度
s4 = '12345'
print(len(s4))→5

4.字符串切片:取子字符串[ : : ] #[开始:结束:步长],默认为从左到右全部切,步长为1
s1 = '123abc呵呵'
①sub_s = s1[ : : ]
print(sub_s)→123abc呵呵
②sub_s = s1[0:6:2]
print(sub_s)→13b
③sub_s = s1[: :-1]
print(sub_s)→呵呵cba321
④sub_s = s1[-1:-6 :-1]
print(sub_s)→呵呵cba

5.字符串循环(遍历)
for v in s1
print(v)→1 2 3 a b c 呵 呵

6.成员运算
判断某字符是否在指示符中
s1 = '123abc呵呵'
ss1 = '123'
print(ss1 in s1)→True
ss2 = '12a'
print(ss2 in s1)→False
print(ss2 not in s1)→True

重要方法
1.索引
s1 = '123abc呵呵'
print(s1.index('b'))→4
2.去留白 #默认去两端留白,也可去指定字符
 2.去留白(默认去两端留白,也可以去指定字符)
s2 = '***好 * 的  ***'
print(s2.strip('*'))→好 * 的
3.计算子字符串个数
s3 = '12312312'
print(s3.count('123'))→2
4.判断字符串是否是数字:只能判断正整数
s4 = '123'
print(s4.isdigit())→True
5.大小写转换
s5 = "AbC def"
print(s5.upper())→ABC DEF  # 全大写
print(s5.lower())→abc def  # 全小写
print(s5.capitalize())→AbC def  # 首字母大写
print(s5.title())→AbC Def  # 每个单词首字母大写
6.以某某开头或结尾
s6 = 'https://www.baidu.com'
r1 = s6.startswith('https:')
r2 = s6.startswith('http:')
r3 = s6.endswith('com')
r4 = s6.endswith('cn')
if (r1 or r2) and (r3 or r4):
    print('合法的链接')
else:
    print('非合法的链接')→合法的链接
7.替换
s7 = 'egon say: he is da shuai b,egon!egon!egon!'
new_s7 = s7.replace('egon', 'Liu某')  # 默认替换所有
print(new_s7)→Liu某 say: he is da shuai b,Liu某!Liu某!Liu某!
new_s7 = s7.replace('egon', 'Liu某', 1)  # 替换一次
print(new_s7)→Liu某 say: he is da shuai b,egon!egon!egon!
8.格式化
s8 = 'name:{},age:{}'
print(s8.format('Owen', 18))→ name:Owen,age:18 # 默认按位置
print('name:{1},age:{1}, height:{1}'.format('Owen', 18))→ name:18,age:18,height:18 # 标注位置,一个值可以多次利用
print('name:{n},age:{a}, height:{a}'.format(a=18, n="Zero"))→ name:Owen,age:18,height:18  # 指名道姓

字符串了解
1. find | rfind:查找子字符串索引,无结果返回-1
2. lstrip:去左留白
3. rstrip:去右留白
4. center | ljust | rjust | zfill:按位填充
语法:center(所占位数, '填充符号')
5. expandtabs:规定\t所占空格数
6. captialize | title | swapcase:首字母大写 | 单词首字母大写 | 大小写反转
7. isdigit | isdecimal | isnumeric:数字判断
8. isalnum | isalpha:是否由字母数字组成 | 由字母组成
9. isidentifier:是否是合法标识符
10. islower | isupper:是否全小 | 大写
11. isspace:是否是空白字符
12. istitle:是否为单词首字母大写格式

列表类型
之前定义过,注:可存放多个值,可存放多有类型
常用操作
1.索引取值: 列表名[index]
s1 = [1, 3, 2]
print(s1[0])→1
print(s1[-1])→2

2.列表运算: 得到的是新list
s2 = [1, 2, 3]
print(s2 + s2)→[1,2,3,1,2,3]
print(s2 * 2)→[1,2,3,1,2,3]
print(s2+list'1']→[1,2,3,'1']

3.list的长度
s3 = [3, 4, 1, 2, 5]
print(len(s3))→5

 4.切片:[start_index:end_index:step]
s4 = [3, 4, 1, 2, 5]
new_s4 = s4[: : -1]
print(new_s4)→[5,2,1,4,3]
new_s4 = s4[1:4:]
print(new_s4)→[4,1,2]
new_s4 = s4[-2:-5:-1]
print(new_s4)→[2,1,4]

5.成员运算:in
s5 = [3, 4, '1', 2, 5]
print('1' in s5)→True
print(1 in s5)→False
print(5 not in s5)→False

6.循环
for v in s5:
    print(v, type(v))→3 4 ‘1’ 2 5   class‘list’
 
             不可变与可变

 
































 





 
 

 

posted @ 2019-04-17 22:12  呼吸决定丶  阅读(104)  评论(0)    收藏  举报