第二章:python基础,数据类型
"""
第二章:python基础,数据类型
2.1 变量及身份运算补充
2.2 二进制数
2.3 字符编码
每8位所占的空间位一个比特,这是计算机中最小的表示单位。
每8个比特组成一个字符。这是计算机中最小的存储单位。
每8个字符又组成一个字节,8bit=1bytes 缩写为1B
GBK 和GB2312
中文和数字的对应表,一个汉字对应两个字节
UTF-8
现代计算机系统通用的字符编码工作方式:
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,
编辑完成之后,保存的时候再将Unicode 转换为UTF-8保存到文件。
2.4 基本数据类型-数字
布尔型(0-1)
整型:python 中整型属于int类型,默认为十进制表示。
浮点型(float):python 中的浮点数就是小数,这里的小数不包括无限不循环小数。
在运算中,整数与浮点数运算的结果也是一个浮点数。
整数与浮点数在计算机内部存贮的方式是不同的,整数运算永远是精确的,而浮点数运算则可能是有四舍五入的误差
关于小数不精确问题:
python默认的是17位精度,也就是小数点后16位,尽管有16位,但是这个精确度却是越往后越不准的
复数:a+bj
a是实部,b是虚部
2.5基本数据类型字符串
字符串的特性:
补充1:字符串的单引号和双引号都不能取消特殊字符的含义,如果想让引号内所有字符
均取消其特殊含义,在引号前面加r
字符串的常用操作:
1,索引(从左到右是从0开始,从右边到左边是从-1开始)
2,查找
s='qwertyui'
print(s.find('c'))
print(s.find('r'))
-1
3
如果查找的字符串中有改字符,会返回这个字符所在的位置,
如果没有该字符,就会返回-1
3,移除空白或者移除特殊的字符
lstrip()从左边移除
rstrip()从右边移除
strip()左右两边都移除
s=' qwert '
print(s.strip())
print(s.lstrip())
print(s.rstrip())
s=' qwert '
print(s.strip())
print(s.lstrip())
print(s.rstrip())
4,长度len
5,替换,replace()
s='qwert'
print(s.replace('q','Q'))
第一个位置元素表示将要替换掉的字符,第二个位置表示用来替换的字符
6,切片
s='qwertyuiop'
a=s[0:7]
print(s)
print(a)
输出的结果是qwertyuiop qwertyu
中括号内第一个数字表示开始切的起始位置,第二个位置表示终止位置,顾头不顾尾
b=s[0:7:2]
第三个位置的2表示间隔2个字符取,如果不填,默认没有间隔
第一个位置的数如果不填默认从头开始,第二个位置的数不填默认取到结尾结束
2.6 基本数据类型列表
列表的特点和常用操作:
特性:
1,可存放多个值.
2,按照从左到右的顺序定义元素,下表从0开始顺序访问,有序
常用操作:
1,索引(这个和字符串是一样的,从做开始是0,从右边开始是-1)
2,切片(这个也和字符串是一样的,中括号第一个元素表示开始,第二个位置表示结束,第三个位置表示间隔)
3,追加
list1=[1,2,3,4,5]
list1.append(8)
print(list1)
[1, 2, 3, 4, 5, 8]
这个只从最后面开始加
4,删除(注意列表是可变类型)
list1=[1,2,3,4,5]
list1.remove(1)
print(list1)
5,长度(len)
6,包含(in)
list1=[1,2,3,4]
print(2 in list1)
print(6 in list1)
True
False
7,循环
list1=[1,2,3,4]
for i in list1:
print(i)
1
2
3
4
列表和字符串---split 和join
#分割
s='hello world'
print(s.split(' '))
['hello', 'world']
分割后的字符串会自动生成一个列表返回。
s2='hello,world'
print(s2.split(','))
['hello', 'world']
#连接 join
list1=['hi','szp','你好啊']
print('!'.join(list1))
hi!szp!你好啊
结果就会生成一个字符串,这个字符串是前面的那个列表中的元素拼接组成的
拼接的部分也就是连接的部位都要加上那个拼接的元素
range:范围
print(list(range(1,10)))
print(list(range(1,10,2)))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 3, 5, 7, 9]
这里同样有着顾头不顾尾的原则,第一个元素表示起始的数字,第二个元素表示终止
的数字第三个元素表示间隔
2.7 基本数据类型--元组
元组的定义和特征:
定义:与列表类似,不过[ ]改成()
特性:1可以存放多个值 2不可变 3按照从左到右的顺序定义元组,下标从0开始访问,有序
元组的创建与常用操作:
1,创建
ages=(11,22,33,44,55)
ages2=(11,22,33,44,55,66)
print(type(ages),type(ages2))
<class 'tuple'> <class 'tuple'>
2,索引(这个和字符串列表的操作一样)
3切片
ages=(1,2,3,4,5)
print(type(ages))
ages2=ages[0:3]
print(ages2)
<class 'tuple'>
(1, 2, 3)
4,长度(len)
5,包含(in)
元组的特性详解
元组可以存放多个值,元组中不仅可以存放数字、字符串,还可以存放更加复杂的数据类型
元组是不可变类型,如果元组中还包含其他可变元素,这些可变元素可以改变
2.8 可变不可变类型和hash
当一个量的值改变而Id可以不改变,那么这个量我们称之位可变类型,就是在id不变的基础上,值可以改变
相反,在ID不变的基础上,如果值不改变,那么就是不可变类型
hash算法也就是将一个可以被hash的数据,转化成一个固定长度的数字
不同的数据转换过来的数字也是绝对不相同的,除非原始数据一模一样,否则不会出现重复
但是:可变的数据类型是不可以被hash的,如果一个值可以被hash那么说明这是一个不可变的数据类型。
2.9 基本数据类型——字典
字典的定义与特征:
字典是Python语言中唯一的映射类型
定义:{key1:value1,key2:value2,key3:value3}
1,键与值用冒号:隔开
2,项与项用逗号,分开
特性:
1,key-value结构
2,key必须可以被hash,且必须为不可变数据类型,必须唯一
3,可以存放任意多个值,可修改,可以不唯一
4,无序
字典的常见操作:
1,键、值、键值对
dic.keys()返回一个字典所有key的列表
dic.values()返回一个字典所有value的列表
dic.items()返回一个包含所有(键,值)元组的列表
dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
print(dict1.keys())
print(dict1.values())
print(dict1.items())
dict_keys(['姓名', '年龄', '性别'])
dict_values(['孙zp', '24', '男'])
dict_items([('姓名', '孙zp'), ('年龄', '24'), ('性别', '男')])
2,新增
dic['new_key']='new_value'
dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
print(dict1)
dict1['学校']='同济大学'
print(dict1)
字典里面新增不是用append 而是直接写入新的值就可以
3,删除
dic.pop(key[default])和get方法相似,如果字典中存在key,删除并返回key对应的value,如果key不存在
且没有给出default的值,就会引发keyerror异常
dict.clear()删除字典中的所有项与元素
dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
dict1.pop('姓名')
print(dict1)
{'年龄': '24', '性别': '男'}
4,修改
dic['key']='new_value' 如果key在字典中存在,new_value就会替换原来得值
dic.update(dic2)将字典dic2的键值对添加到dic中
dict1={'姓名':'孙zp','年龄':'24','性别':'男'}
dict1['姓名']='王大锤'
print(dict1)
dict2={'学校':'同济大学'}
dict1.update(dict2)
print(dict1)
{'姓名': '王大锤', '年龄': '24', '性别': '男'}
{'姓名': '王大锤', '年龄': '24', '性别': '男', '学校': '同济大学'}
5,查看 dic['key']返回字典中key对应得值,若key不存在字典中,则报错 dic.get(key,default=None)返回字典中key对应得值,若key不存在字典中,则返回default的值 (default默认的值位none)dict1={'姓名':'孙zp','年龄':'24','性别':'男'}print(dict1['性别'])男6,循环 for k in dic.key() for k,v in dic.items() for k in dic7,长度(len)2.10 基本数据类型--集合认识集合:集合是一个数学概念,由一个或者多个确定的元素集合中元素有三个特征:确定性,互异性,无序性集合的关系运算& 交集|,|并集l={'张三','李四','王五'}p={'张三','王五','小强'}print(l&p)###求两个的交集print(l-p)print(p-l){'张三', '王五'}{'李四'}{'小强'}集合的常用操作:1,元素的增加add() 作用类似于列表的appendupdate() 元素的删除集合删除单个元素又两种方法:当集合中没有要删除的这个元素时set.discard(x)不会抛出异常set.remove(x)会抛出异常p={'张三','王五','小强'}p.remove('王五')print(p)p.discard('张三')print(p){'张三', '小强'}{'小强'}pop()随即弹出一个集合中的元素,如果集合是空的,会报错"""
第二章:python基础,数据类型的更多相关文章
- 第二章 python基础(一)
第一节 Python文件类型 源代码 Python源代码的文件以“py”为扩展名,由Python程序解释,不需要编译 字节代码 Python源文件经编译后生成的扩展名为“pyc”的文件 编译方法 im ...
- 第二章----python基础
概要:python是一种计算机编程语言,有自己的一套语法,编译器或者解释器负责把符合语法的程序代码翻译成CPU能识别的机器码,然后执行.python使用缩进来组织代码块,Python程序中大小写是敏感 ...
- 第二章 Python基础语法
2.1 环境的安装 解释器:py2 / py3 (环境变量) 开发工具:pycharm 2.2 编码 编码基础 ascii ,英文.符号,8位为一个东西,2**8 unicode ,万国码,可以表示所 ...
- 第二章 python基础(二)
第九节 函数 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 可以通过函数名在程序的不同地方多次执行(这通常叫做函数调用),却不需要在所有地方都重复编写这些语句. ...
- 第二章 python基础(三)
第十六节 MySQLdb win64位安装python-mysqldb1.2.5 ubuntu下安装MySQLdb sudo apt-get install python-MySQLdb 导入MySQ ...
- 第二章Python入门
第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Pytho ...
- Python 入门之Python基础数据类型及其方法
Python 入门之Python基础数据类型 1. 整型:int 用于计算,用于比较 (在赋值的时候先执行等号右边的内容) 1.1 整数的加 a = 10 b = 20 print(a + b) 结果 ...
- java面向对象编程——第二章 java基础语法
第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- python基础数据类型考试题
Python基础数据类型考试题 考试时间:两个半小时 满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...
随机推荐
- mysql binlog日志自动清理及手动删除
说明:当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间.mysql-bin.000001mysql-bin.000002mysql-b ...
- [JVM] IDEA集成VisualVM
VisualVM是集成命令行JDK工具和轻量级分析功能的可视化工具. 参考: https://blog.csdn.net/qq_22741461/article/details/80451675 ht ...
- java 中 热部署与卸载关系
今天发现早年在大象笔记中写的一篇笔记,之前放在ijavaboy上的,现在它已经访问不了了.前几天又有同事在讨论这个问题.这里拿来分享一下. 在web应用开发或者游戏服务器开发的过程中,我们时时刻刻都在 ...
- oss2罗列所有文件
使用oss python sdk罗列某目录下所有文件. #!/usr/bin/python3 import sys, os import oss2 auth = oss2.Auth('keyID', ...
- php文件夾的複製,刪除等操作
====================查看文件夹大小===================== 由于文件夹是没有大小的,平常所说的文件夹尺寸准确的说应该是文件夹中所有文件的总大小. 所以只需要将文件 ...
- THINKPHP5近期暴露的漏洞
这个THINKPHP5的漏洞涉及好几个版本,我测试中5.0.21和5.0.22都有,据说是5.0 ~ 5.0.23之间的版本都存在,这个漏洞可以执行写文件的操作. 当然了,赶紧升级框架到安全版本是比较 ...
- Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...
- 关于linux - Centos 7 系统下使用PXE网络的方式(pxe+dhcpd+tftp+httpd)安装操作系统
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络而不是从本地硬盘.光驱等设备启动. 现代的网卡,一般都内嵌支持PXE的ROM芯片. ...
- JDK 5.0 注解知识快速进阶
1.了解注解 对于Java开发人员来说,在编写代码时,除了源程序外,还会使用Javadoc标签对类.方法或成员变量进行注释,一遍使用Javadoc工具生成和源代码配套的Javadoc文件,如@para ...
- 1、js基础内容
js基础内容 1. 编辑器 编译环境 浏览器 编辑软件 sublime DW H5Build Atom ==[注]尽可能多的去使用编辑器去编辑代码.== Html+css ==JS 逻辑== 比作建设 ...