python boolean list_Python【day 15】基本数据类型-int str bool list

''''''

'''1 python的定义

是一门弱类型的解释性的高级编程语言

这里的高级是相对低级(例如:汇编语言等)

高级编程语言和低级编程语言的区别

1、前者更接近于人的理解--字母组成的语法

2、后者更接近于计算器的理解--字节码、二进制

2 python的特点

人生苦短,我用python

简洁

3 为什么学习python

爱好,人工智能,机器学习,大数据

4 python第一个程序

print('hello world')

方式1:在cmd中输入python后,在交互命令行,输入上述语句,enter

方式2:在本地d盘新建一个hello.py的文件,将上述语句复制到.py文件中,保存后

在cmd中,进入到d盘, 执行命令 python hello.py

方式3:将上述语句写入pycharm后,run

5 变量的概念

变量是程序运行过程中产生的中间值--temp(暂存属性,开辟一个内存空间,用于保存值)

1、内存空间的名字就是变量的名字

2、内存空间保存的值就是变量的值

比如: a=10 变量名字就是a 变量的值是10

6 变量的命名规则:

1、组成:数字、字母、下划线组成

2、开头:不能是数字开头

3、关键字:不能是关键字,比如:list

4、长度:不要太长

5、中文:不要是中文

6、有意义:要有意思(一看名字,就知道变量大概表示的意思)

7、大小写:严格区分大小写

8、写法:推荐下划线或者驼峰法命名

下划线:hello_world(单词之间,下划线分隔开)

驼峰法:helloWorld (首字母不大写,第二个单词开始,首字母大写)

7 变量的数据类型

1 int 整数 + - * / // bit_length()

2 str 字符串

1、表示方式 ' " \''' \""" 注意点:这里的\ 表示转义

1 单引号''

2 双引号""

3 三个单引号''' '''4 三个双引号 """ """

2、* 重复

3、+ 拼接

4、%s 格式化

5、索引和切片

s1[start:end:step] 左闭右开

1 start 起始索引号-下标

2 end 结束索引号-下标 (取不到)

3 start 步长(不写,默认是1)

6、常见内置方法

1 upper() 转换成大写字母

2 strip() 去掉字符串两端的空白

strip('ab') 去掉字符串两端的'ab'

3 replace(old,new,count)

参数3 count表示从左到右替换的次数

参数3不写,默认是全部替换

4 split() 把字符串拆分成几个子字符串,每个子字符串作为列表的元素,返回的是列表

默认分隔符是空格

split('_') 分隔符是下划线

5 '_'.join() 把参数iterable中的字符串通过连接符'_'拼接成字符串

写法: '连接符'.join(iterable)

注意点:

1 iterable中的元素必须是str,而不能是int

2 join不是字符串的内置方法

6 startswith()

写法:s1.startwith('a')

作用:判断字符串是否以字母'a'开头

7 find index count

写法:s1.find('a')

作用:从字符串s1中查找字符‘a’,返回索引号;如果找不到,就返回-1 --更健壮 推荐

写法:s1.index('a')

作用:从字符串s1中查找字符‘a’,返回索引号;如果找不到,就报错

写法:s1.count('a')

作用:从字符串s1中统计字符'a'出现的次数,返回出现的次数int

如果是0次,代表没有找到(也有查找的功能)

8 isdigit()

写法:s1.isdigit()

作用:判断字符串是否是数字形式的,是的话,返回True

9 len()

写法:len(s1)

作用:返回字符串的长度

7、字符串是iterable

for i in s1:

循环体(break continue)

else:

pass

8、字符串的编码方式

1 ascii 8位 1个字节

2 gbk 国标码 gb2312 16位 2个字节

3 unicode 万国码 32位 4个字节

4 utf-8 可变的unicode

1 英文字符 8位 1个字节

2 欧洲字符 16位 2个字节(德文、法文、西班牙文等字符)

3 中文字符 24位 3个字节

字符串编码后变成字节bytes

编码-加密-压缩

字节解码后变成字符串

解码-解密-解压

bytes.decode() #解码

3、bool 布尔类型

取值:True False

作用:用于判断的

类型转换:

False:0或者空('' [] () {} set() None)

空字符串、空列表、空元组、空字典、空集合、空None

注意:空格、\r \n \t都是True

True:除了上面的,其他都是True

注意点:类型转换False可以直接用于判断

备注:

例子1

content1 = input('请输入你的名字:') #输入的是字符串

if content1: #判断空 如果不输入内容,直接回车,就提示-你没有名字 注意点:和下面行的结果不一样

# if content1 == '': #如果不输入内容,直接回车,就打印-你的名字是

print('你的名字是 ',content1)

else: #如果你什么都没有输入,这个content1就是空字符串

print('你没有名字')

例子2

li1 = [1,2,3]

if li1: #这里就是在判断列表是否为空, 和下面行等效

# if li1 == []:

print(li1)

else: #

print('空列表')

4、列表 list

表示:[],元素之间是逗号隔开

概念:列表是一个容器,可以存放任意数据类型

和其他开发语言的数组array类似

特点:

1、列表是可变的

2、列表由索引和切片功能

常见操作:

1 增

1 append(元素值)

在列表最后面追加元素

2 insert(i,元素值)

在列表指定位置前插入元素

3 extend(iterable)

把iterable中的元素依次添加到原列表

2 删

1 pop()

参数不写,默认是删除最后一个元素

参数也可以指定索引号,来删除

2 remove

删除指定的元素值

3 del

切片或者单个删除

4 clear

清空元素

3 改

1 按照索引-下标修改

切片修改

单个索引号修改

4 查

1、单个索引号取值

2、for循环遍历

01列表-增加元素小结

1 append是末尾追加新元素--最常用

2 insert是指定位置前插入新元素

3 extend是将iterable中元素依次添加到原列表

02列表-删除元素小结

1 pop

不带参数,默认删除列表最后一个元素,并且获取到被删除的最后一个元素

指定参数,删除指定位置-索引号的元素,并且获取到被删除的指定位置的元素

2 remove

参数:元素值(不是位置)

作用:删除指定元素值

3 del

1 参数:单个位置-索引号

写法:del 列表(位置)

作用:删除单个位置的元素

2、参数:切片

写法:del 列表(切片)

作用:切片删除多个位置的元素

3、参数:列表名

写法:del 列表名

作用:删除整个列表,回收内存空间(和清空clear是不同的)

4、参数:字典的key

写法:del 字典名[key]

作用:删除字典中指定key对应的键值对

综上,del的作用

1、可以删除单个位置的元素

2、可以切片删除多个元素

3、可以删除整个列表,回收内存空间

4、不仅是列表,也适用于字典

4 clear

参数:为空

写法:li1.clear()

作用:清空列表的元素,变成空列表

清空-列表的内存空间没有被回收(和del li1不一样)

03列表-修改元素小结

1 单个位置修改--单个元素修改

写法:li3[1] = 'james'

作用:指定位置-索引号进行列表单个元素的修改

2、切片多个元素修改

1 2个元素改成1个元素

正确写法:li3[1:3] = ['james']

错误写法:li3[1:3] = 'james' 注意点

2 2个元素改成2个元素

写法:li3[1:3] = ['james','kevin']

3 2个元素改成3个元素

写法:li3[1:3] = ['james','kevin','lucy']

04列表-查询元素小结

1 单个查询-单个取值-按照单个位置-索引号-下标

2 多个查询-多个取值-按照切片

3 全部查询-全部取值-for循环遍历

5、其他常见操作

1 count() 计数

计算某个元素在列表出现的次数

2 index() 查找

返回某个元素在列表中的位置-索引号-下标

3 sort() 排序

把列表的元素进行排序,默认升序,列表本身修改了

4 reverse()反转

把列表的元素反转,列表本身修改了

6、列表在循环遍历的过程中,不能删除元素,因为涉及到元素的移动

解决办法:

把要删除的元素,添加到新的列表中,循环新列表,删除老列表

7、深浅拷贝和赋值

1、= 赋值,两个变量指向同一个内存地址,不同的变量只是同一个内存地址的不同别名

2、浅拷贝,只拷贝第一层(第二层及以上还是指向同一个内存空间,没有实现拷贝)

li1.copy()

li1[:]

检验是否是一个内存空间的办法:看变量的id值

3、深拷贝,不仅拷贝第一层,第二层及以上都拷贝

li1.deepcopy()

扩展:在其他的编程语言(比如:java),叫做克隆,也分为深浅克隆

浅拷贝和深拷贝的类比

1、浅拷贝是第一层内存空间分开,第二层及以上内存空间是同一个

--第一层独立,第二层及以上是一变都变

第一层就是家庭夫妻财务AA

第二层就是家庭夫妻设立的共同账户

2、深拷贝是第一层内存空间分开,第二层及以上内存空间也分开--每层完全独立

类比:家庭夫妻财务完全AA,没有设立共同账户

8、列表推导式

写法

[结果 for循环 if判断]

例子:

li7 = [1,2,3]

#需求:将列表中的奇数,变成其平方数

li8 = [i*i for i in li7 if i%2 == 1 ]

print(li8) #[1, 9]'''

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值