每天一总结,今天学习的是数据类型及其使用方法与可变与不可变类型。

今天了解的数据类型有整型int,浮点型float,字符串类型str,布尔型bool,列表list。

整型int与浮点型float都属于数字类型,对于n=10整数赋值的变量类型就是int,m=10.11小数赋值的变量类型就是float。而布尔型bool一定程度上也可看作数字类型,res=True  ,  print(10.11+True) ==>11.11,True默认为1。作为数字类型,各类型可以相互转换。

a = 10b = 3.74c = Trueprint(int(a), int(b), int(c)) #10 3 1print(float(a), float(b), float(c))  #10.0 3.74 1.0print(bool(a), bool(b), bool(c))   #True True True    

字符串类型str,就是通过单引号、双引号、三引号包裹的数据。我们可以通过引号的嵌套,使内部不同的引号在不转义的情况下直接输出。

s2 = '你是"好学生"'print(s2)    #你是"好学生"

1.字符串str的常规使用方法:

1.1 字符串的索引取值: 字符串[index]。在[]中,若正向取值,从0编号;反向取值,从-1编号。

s1 = '123abc呵呵'print(id(s1))  # 2217572683576print(s1[0], id(s1[0]))  # 2217543167200t_s = '1'print(id(t_s))  # 2217543167200print(s1[5], s1[-3])# 取出c

1.2 字符串拼接

s2 = '你好's22 = '帅'ss2 = s2 + s22print(ss2, id(s2), id(s22), id(ss2)) #你好帅 1762726760584 1762725178624 1762725303920
a = 10b = "20"c = True# res = "1020True"res = "%s%s%s" % (a, b, c)  # 方法1print(res)res = str(a) + b + str(c)  # 方法2print(res)

1.3 字符串长度len

s3 = '12345'ln1 = s3.__len__()print(ln1) #5ln2 = len(s3)print(ln2) #5

1.4 字符串切片: 取子字符串 - [::] - [start_index:end_index:step]

s4 = '123abc呵呵'sub_s = s4[0:6:]print(sub_s)  # 123abcsub_s = s4[0:6:2]print(sub_s)  # 13bsub_s = s4[::-1]print(sub_s)  # 呵呵cba321sub_s = s4[-1:-6:-1]print(sub_s)  # 呵呵cba

1.5 成员运算:判断某字符串是否在该字符串中

s5 = '123abc呵呵'ss5 = '12a'print(ss5 in s5)  # Falseprint(ss5 not in s5)  # True

1.6 字符串循环

s6 = '123abc呵呵'for v in s5:    print(v)

2.字符串str重要方法

2.1 索引(目标字符串的索引位置) index

s1 = '123abc呵呵'print(s1.index('b'))  #4

2.2 去留白(默认去两端留白,也可以去指定字符) strip

s2 = '***好 * 的  ***'print(s2.strip('*'))  #好 * 的  |左边是有空格的

2.3 计算子字符串个数 count

s3 = '12312312'print(s3.count('123'))  #2

2.4 判断字符串是否是数字:只能判断正整数 isdigit

s4 = '123'print(s4.isdigit())  #True

2.5 大小写转换

s5 = "AbC def"print(s5.upper())  # 全大写ABC DEFprint(s5.lower())  # 全小写abc def

2.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('不合法的链接')  

2.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!

2.8格式化

s8 = 'name:{},age:{}'print(s8.format('Owen', 18))  # 默认按位置print('name:{1},age:{1}, height:{1}'.format('Owen', 18))  # 标注位置,一个值可以多次利用print('name:{n},age:{a}, height:{a}'.format(a=18, n="Zero"))  # 指名道姓

当然字符串str还有些只需了解的方法:find,rfind,center,ljust,zfill,swapcase等等,在实际情况需要的时候可以再学习。

列表类型,list。

ls = [3, 1, 2]  print(ls)ls = list([3, 1, 2])  # 本质print(ls)
list嵌套:ls = [3, 1, [3, 2, [1]]]在list列表中,可以存放多个值,什么类型都可以存放。

1.列表的常规操作:

1.1 字符串的索引取值: 列表名[index]。

1.2 列表运算:得到的是新的list。

1.3 list长度len

1.4 切片:   [::]

[start_index:end_index:step]

1.5 成员运算:in

1.6 循环:在for循环中,只打印数字类型的数据。

以上各种方法可以与字符串取值看作一致。

2.列表list的重要方法:

2.1查 print

2.2增 append()末尾增,insert()任意index前增

ls = [1, 2, 3]
ls.append(0)  # 末尾增print(ls)ls.insert(1, 666)  # 任意index前增print(ls)ls.insert(len(ls), 888)  # insert实行末尾增print(ls)

2.3改 如:ls[1]=66666,print(ls)

2.4删 remove();  pop() #默认从末尾删,并返回删除的值;pop(1) #从指定索引删除,并返回删除的值。

可变与不改变类型:可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型。不可变类型:值改变,但是id也跟着变,证明是产生了新的值,是不可变类型。因此,我们可以区分今天的各种数据类型。数字类型,可以存放一个值,属于不可变类型。字符串类型,虽然一个字符串里可以有很多的字符,但是字符串存放的是一个值,其是有序存储的,属于不可变类型。列表类型,可以存放多个值,存储也是有序的,但是属于可变类型。

最新文章

  1. python转exe的小工具
  2. GET和POST有什么区别?
  3. 前端 解决swiper js 手动滑动一下后不能自动播放
  4. chrome密码管理
  5. Palindrome_滚动数组&&DP
  6. uniquery 配合 mssql 自带存储过程实现分页
  7. ZOJ 2411 Link Link Look(BFS)
  8. COJ 2108 Day7-例1
  9. [C++]Hello C++
  10. html5 人物行走
  11. Linux系统的时区和时间调整
  12. String之常量池小结
  13. MySQL 表名区分大小写设置
  14. 一个基于OCV的人肉选取特征点程序
  15. 微服务之服务中心—zookeeper
  16. VS2017编译GDAL(64bit)+解决C#读取Shp数据中文路径的问题
  17. MySql数据库实现分布式的主从结构
  18. 易混HTML Entities与正确用法
  19. 支付宝支付集成过程中如何生成商户订单号(out_trade_no)
  20. 国内高速下载Docker 以及 docker-compose 地址

热门文章

  1. c++ fmt 库安装和使用示例
  2. synchronized详解
  3. Python——编译标准
  4. 精心收集的 95 个超实用的 JavaScript 代码片段( ES6+ 编写)
  5. Visualize Code with Visual Studio
  6. 使用jar包格式化Docker 容器日志
  7. P2495 [SDOI2011]消耗战 lca倍增+虚树+树形dp
  8. MT【317】两次判别式
  9. C++ 动态链接库 DLL 的一些笔记
  10. Mybatis Generator的model生成中文注释,支持oracle和mysql(通过实现CommentGenerator接口的方法来实现)