第二章:python基础,数据类型

时间:2022-09-14 15:21:42
"""
第二章: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基础,数据类型的更多相关文章

  1. 第二章 python基础(一)

    第一节 Python文件类型 源代码 Python源代码的文件以“py”为扩展名,由Python程序解释,不需要编译 字节代码 Python源文件经编译后生成的扩展名为“pyc”的文件 编译方法 im ...

  2. 第二章----python基础

    概要:python是一种计算机编程语言,有自己的一套语法,编译器或者解释器负责把符合语法的程序代码翻译成CPU能识别的机器码,然后执行.python使用缩进来组织代码块,Python程序中大小写是敏感 ...

  3. 第二章 Python基础语法

    2.1 环境的安装 解释器:py2 / py3 (环境变量) 开发工具:pycharm 2.2 编码 编码基础 ascii ,英文.符号,8位为一个东西,2**8 unicode ,万国码,可以表示所 ...

  4. 第二章 python基础(二)

    第九节 函数 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 可以通过函数名在程序的不同地方多次执行(这通常叫做函数调用),却不需要在所有地方都重复编写这些语句. ...

  5. 第二章 python基础(三)

    第十六节 MySQLdb win64位安装python-mysqldb1.2.5 ubuntu下安装MySQLdb sudo apt-get install python-MySQLdb 导入MySQ ...

  6. 第二章Python入门

    第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Pytho ...

  7. Python 入门之Python基础数据类型及其方法

    Python 入门之Python基础数据类型 1. 整型:int 用于计算,用于比较 (在赋值的时候先执行等号右边的内容) 1.1 整数的加 a = 10 b = 20 print(a + b) 结果 ...

  8. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  9. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  10. python基础数据类型考试题

    Python基础数据类型考试题 考试时间:两个半小时                      满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...

随机推荐

  1. java检测文件内是否包含指定内容

    package com.test; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.File ...

  2. MAC OS Nginx php-fpm相关

    Nginx 命令 sudo nginx // 启动Nginx #重新加载|重启|停止|退出 sudo nginx -s reload|reopen|stop|quit #上传文件限制更改: 进入ngi ...

  3. RMAN备份与恢复深入解&lt&semi;一&gt&semi;

    一 数据库版本 SQL> select *from v$version; BANNER ----------------------------------------------------- ...

  4. 1&period;3&period; 创建 Grocery Dude 项目(Core Data 应用程序实践指南)

    该程序功能如下: 分类显示家里各个位置的东西,以此提示该购买哪些生活用品 在超市购买时,告诉某个货品摆在哪条过道旁的货架上 将待买物品按过道编组,这样每个过道只需走一遍,就可以拿完所需货品 通过iCl ...

  5. php实现多进程和关闭进程

    一.php实现多进程 PHP有个pcntl_fork的函数可以实现多进程,但要加载pcntl拓展,而且只有在linux下才能编译这个拓展. 先代码: <?php$arr = ['30000000 ...

  6. LeetCode11&period;盛最多水的容器

    给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找出其中的两条线, ...

  7. Microsoft Sql Server 2016安装在CentOS7下

    安装过程 如何安装直接参考这个文章:安装sql server 整个安装过程非常简单. 上面的文档里是通过 sudo 命令,用root身份来执行,不过这里为了简单,就用root账号来安装的. (1)下载 ...

  8. java反射实现接口重试

    工具类: import java.lang.reflect.Method; public class RetryUtil { private static ThreadLocal<Integer ...

  9. 8-1 Stacks of Flapjacks UVA120

    题意:  有一叠煎饼在锅里 n n<=30张  每张都有一个数字 代表它的大小    厨师每次可以选择一个数k  把从锅底开始数第k张上面的煎饼全部反过来  即原来的在上面的煎饼现在到了下面   ...

  10. MongoDB查询指定字段&lpar;field&rpar;返回指定字段的方法

    使用MongoDB的时候需要只查询指定的字段进行返回,也就是类似mysql里面的 SELECT id,name,age 这样而不是SELECT *.在MongoDB里面映射(projection)声明 ...