python笔记(一) 数据类型 函数
==# ==变量
在程序的运行过程中,变量值可以发生改变
变量先定义再使用
标识符 命名规范
- 数字 字母下划线组成
- 不能以数字开头
- 不能使用系统关键字
- 查看关键字:
import keyword #导入库
print(keyword.kwlist)
变量的命名规范:
1. 见名识意
2. 尽量用英文
3. 采用驼峰命名法或者是下划线
num1 = num2 = 20 统一赋值
num1,num2 = 10,20 对称赋值
输入和输出
- 输出: print() 逗号会输出一个空格 strings=input(提示信息)
strings就是用户输入的信息被保存
单位换算
1bit
8bit == 1字节
1024字节 == 1M
1024M == 1G
1024G == 1T
计算机存储 0和1
进制间转化
二转十:按次幂乘然后相加
十转二:倒除法 余数逆序相加
八转二:一转3位 八进制的一位相当于二进制的三位
十六转二:一转四位
二转八:三位一取 低位开始取 高位不够补0
二转十六:四位一取
定义常量
标识符全大写
【注】 python中没有严格意义语法规定定义常量,默认使用全大写来定义 常量是在程序的运行过程中其值不可改变的量
数据类型:使用type()获取数据类型
- int 整型
- float 浮点型
- bool 布尔型
python中产生false的情况
False None 空字符串 空列表[] 空字典{} 空元组()
4.complex 复数类型
实数和虚数都是浮点型
函数名 | 意义 |
---|---|
pow | 次方 |
sqrt | 开方 |
max | 最大值 |
min | 最小值 |
random | 随机数 |
round | 四舍五入 |
floor | 向下取整 |
ceil | 向上取整 |
None类型
None是python里面特殊的数据类型,None不是0
出现None类型的是时候 最经常就是函数没有返回值的时候
None和任何的数据类型做比较 返回值都是False
字符串类型
- 不能使用str做变量名
- 用单引号和双引号包含起来的就是字符串
- 双引号中不能使用双引号,单引号里不能使用单引号
- 加号可以做拼接使用 【注】左右两边都是字符串
- 乘号可以重复当前字符串
- 字符串只能通过key取值 不能通过Key来修改值
字符串的下标 截取
索引值(key)开始从0开始 末尾为-1
str[开始位置:结束位置:步长] 步长-1间隔取#截取 str1[开始位置:结束位置]#只取结束位置 默认从0开始取到结束下标#同理只给开始位置
默认从开始位置(包含开始位置的值)取到结束位置#不给值的时候默认取全部#步长为-1时翻转
字符串的转义
转义字符 | 转义后 |
---|---|
\’ | ‘ |
\” | “ |
\n | 换行 |
\t | 水平制表符 |
字符串的格式化
格式化字符 | 意义 |
---|---|
%s | 给字符串占位 |
%d | 给整数占位 |
%o | 以八进制打印 |
%x | 以十六进制进制打印 |
%10d | 十位整数 补空格 |
%010d | 十位整数 补0 |
%f | 给浮点型占位默认是保留6位小数 |
%.2f | 保留两位 |
%10.2f | 一共10位 保留两位 前边用空格补 |
%010.2f | 同上 前边用0补 |
如果占位原来就有% 那就使用%% 输出一个
使用字符串的【str.format()】格式化输出(映射)
print('阿郎你前女友的名字叫%(name)s,现女友姓名不详性别不详年龄%(age)d,身高不想%(hei)d' % {'hei':160,'name':'nana','age':18})
print('daishu%(name)s,daxiang%(name)s' % {'name':'sdf'})print('{}气冲冲的从{}走出来,{}问你咋啦,袋鼠说{}非要存包'.format('daishu','chaoshi','daxiang','mmp'))print('{2}气冲冲的从{1}走出来,{0}问你咋啦,袋鼠说{2}mmp非要存包'.format('daishu','chaoshi','daxiang'))print('信{name}没坎坷{qianfang}一溜小平坡'.format(name='meili',qianfang='前方'))
关键字 | 作用 | 关键字 | 作用 |
---|---|---|---|
isnumeric | 判断字符串是否是数字 | replace | 替换 |
join | 以指定的分隔符来分割字符串 | find | 查找 |
center | 按指定字符填充成一个新的字符串 | rfind | 从右往左 |
ljust | 左对齐方式填充 | upper | 大写 |
rjust | 右对齐方式填充 | lower | 小写 |
lstrip | 删除左边指定字符(空白) | index | 查找指定字符串的索引值 |
rstrip | 删除右边指定字符(空白) | title | 每个单词首字母大写 |
eval | 将表达式作为结果计算 | strip | 删除两边指定字符(空白) |
str2 = '12345'print(str2.isnumeric())
str1 = 'hhhh'print(str1.center(10,*)) //***hhhh***
#字符串前加r 防止特殊字符转义str3 = r'c: \user\asdsa''
数据类型
列表类型(有序的数据的集合)
定义:使用[]定义一个列表,列表里面的值可以是
1. 定义一个空列表[]
2. 下标可以读取列标识 classList[0]
3. 也有同字符串的切片截取 eg:classList[:3]
4. 可以通过下标修改值,但不可以越界
5. 列表可以对称赋值 [num1,num2] = [num2,num1]
6. 列表的删改查 del列表元素,对应下标赋值
列表函数名 | 作用 |
---|---|
len | 列表,字符串长度 |
count | 统计某个值在列表中出现的次数 |
extend | 列表中追加值 |
insert | 指定位置插入值 |
pop | 将列表最后一个元素弹出 |
remove | 将列表中匹配到指定元素的第一个移除 |
reverse | 将原列表反转 |
clear | 将原列表清空 |
append | 列表添加元素 |
sort | 升序 |
myList = ['a','b','c']
#列表中追加值
print(myList.extend(['f','g']))
print(myList.insert('w','t')) #在下标为2的位置插入w,t
print(myList)
结果:['a','b','w','t',c']
在python里 不是以变量名来存储地址 而是以值来存储地址
num = 5
num2 = 5
print(id(num))
print(id(num2)) #以值来存储 所以指向一样
num2 = 10
print(id(num))
print(id(num2)) #num2的值修改后 指向发生改变
浅拷贝(指向是一个地址)
myList = [1,3,4,6]
myList2 = myList
myList2[0] = 'a'
print(id(myList))
print(id(myList2))
print(myList)
print(myList2)#结果:
43484872
43484872
['a', 3, 4, 6]
['a', 3, 4, 6]
深拷贝(字面上真正意义的拷贝)
myList3 = ['a','b','c']
myList4 = myList3.copy()
myList4[0] = '1'
print(id(myList3))
print(id(myList4))
print(myList3)
print(myList4)结果:
43615944
43616136
['a', 'b', 'c']
['1', 'b', 'c']
模块中的copy.copy只拷贝一层 也叫浅拷贝
myList = ['1','a','f']
myList2 = copy.copy(myList)
myList[0] = 'd'
print(id(myList))
print(id(myList2))
print(myList)
print(myList2)结果:
43353800
43353992
['d', 'a', 'f']
['1', 'a', 'f']
myList = ['1','a','f',['df','fg']]
myList2 = copy.copy(myList)
myList[3][0] = 'd'
print(id(myList))
print(id(myList2))
print(myList)
print(myList2)结果:
36079496
36080776
['1', 'a', 'f', ['d', 'fg']]
['1', 'a', 'f', ['d', 'fg']]
深拷贝
myList = ['1','a','f',['df','fg']]
myList2 = copy.deepcopy(myList)
myList[3][0] = 'wwww'
print(myList)
print(myList2)结果:
['1', 'a', 'f', ['wwww', 'fg']]
['1', 'a', 'f', ['df', 'fg']]
【注】Python中,对象的赋值都是进行对象引用(内存地址)传递
【注】浅拷贝会创建一个新的对象,但是,对于对象中的元素,浅拷贝就只会使用原始元素的引用(内存地址)
总结一下,当我们使用下面的操作的时候,会产生浅拷贝的效果:
- 使用切片[:]操作
- 使用工厂函数(如list/dir/set)
- 使用copy模块中的copy()函数
==用法==
1. Python中对象的赋值都是内存地址传递(改一个全改,id相同)
2. 使用copy(),对象不嵌套深拷贝(改哪个变哪个),列表嵌套的话是浅拷贝(改一个全改)
3. 使用copy.copy(),可以进行对象的浅拷贝,它复制了对象,但对于对象中的元素,依然使用原始的引用(内存地址传递).
4. 如果需要复制一个容器对象,以及它里面的所有元素(包含元素的子元素),可以使用copy.deepcopy()进行深拷贝
5. 对于非容器类型(如数字、字符串、和其他’原子’类型的对象)没有被拷贝一说
6. 如果元祖变量只包含原子类型对象,则不能深拷贝
元组
- 元组的值不能进行修改
- 值为列表时 列表中的值可以修改
- 可以根据下标取值 也可以下标切片截取,与字符串和列表相似
- 也有+和* 功能相同
- del 不可以删除指定下标值 可以直接删除所有
- in可以判断值是否存在于元组中
集合 set
- 不能用{}来定义一个空的集合 用==set2 = set()== 来定义空集合
- 集合元素不重复
- 不能使用+和*
myList = [1,3,5,7,7]
print(set(myList))结果:[1,3,5,7]
set1 = {'a','b','c'}
set2 = {'d','e','a','w'}
#差集
print(set1 - set2)
#并集
print(set1 | set2)
#交集
print(set1 & set2)
#不同时存在
print(set1 ^ set2)
字典
- 字典类型 是有key->value的形式组成 并且查找速度很快
- 定义 {}
dict1 = {'name':'aa','age':1}
classList = {'bb':90,'ww':92}
- 下标是由字符串和整数组成
- 键值成对出现 下标唯一
通过下标查询
classList['name']
修改
classList['name'] = 'qwe'
删除
del classList['name']
查找
print(classList.get('aa')) #下标存在 返回值 不存在显示None
classList.keys() #取出当前字典数据中的所有key
classList.values() #取出当前字典中所有的value
classList.pop(87) #通过key弹出value
字典函数 | 作用 |
---|---|
update | 合并字典相同的键覆盖 |
keys | 取出所有key |
values | 取出当前字典中所有的value |
pop | 通过key弹出value |
get | 查询 |
数据类型转换
str1 = str(10.45) 转字符串
str2 = int('10') 转整型
str3 = float('10') 转浮点型
list() 转成列表
转换函数 | 作用 |
---|---|
bool | 转换为布尔类型 |
int | 转换为整数类型 |
str | 转换为字符类型 |
float | 转换为浮点类型 |
dict | 转换为字典类型 |
set | 转换为集合类型 |
list | 转换为列表类型 |
tuple | 转换为元组类型 |
python笔记(一) 数据类型 函数相关推荐
- 初学者python笔记(map()函数、reduce()函数、filter()函数、匿名函数)
文章目录 一.匿名函数 二.map()函数 三.reduce()函数 四.filter()函数 五.三大函数总结 本篇文章内容有Python中的匿名函数和map()函数.reduce()函数.filt ...
- python笔记2(函数 面向对象 文件编程 上下文管理器)
记录python听课笔记 文章目录 记录python听课笔记 一,函数 1.介绍python里的函数 2.用户自定义函数 3.变量的作用域 4.参数的传递 5.参数的默认值 6.向函数内部批量传递数据 ...
- 笨方法“学习python笔记之print()函数end
在<"笨方法"学习python>中的第7个习题中的用例代码中有print()函数的end用例 代码如下: end1 = "C" end2 = &qu ...
- 轩小陌的Python笔记-day13 匿名函数、生成器、内置函数、推导式
day13 内置函数和推导式 今日概要: 匿名函数 生成器 内置函数 附加:推导式,属于数据类型的知识,内部的高级的用法会涉及到[生成器]和[函数]的内容. 1. 匿名函数 传统的函数的定义包括了:函 ...
- python笔记之强制函数以关键字参数传参
最近学习python,学到了函数传参,看到了以下这个特殊情况,特此来做个笔记 def add(*, x, y): print(x, y) 以上函数定义后,该怎么传参?前面的那个*号是做什么用的? 我们 ...
- 轩小陌的Python笔记-day05 数据类型
day05 数据类型(上) 接下来的3篇的内容都是讲解数据类型的知识点,常见的数据类型: int,整数类型(整型) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 d ...
- 轩小陌的Python笔记-day07 数据类型
day06 数据类型(下) 常见的数据类型: int,整数类型(整型) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 dict,字典类型 set,集合类型 floa ...
- python笔记之function函数
函数 函数:对实现某一功能进行封装,就是函数. 特点:提高了代码的复用性 函数的定义: def 函数名称(参数):函数体代码return 返回值 函数的调用:函数名(参数) 函数的参数: 形式参数: ...
- python笔记之 inputprintformat函数
输入与输出(input and print) input():程序执行过程中,接受用户输入的内容 print():程序执行过程中,输出的内容1. 直接输出内容2. 输出多个和单个变量3. 换行和不换行 ...
- 初学者python笔记(filter()函数完全详解)
文章目录 初级版本--普通函数: 改进版本--函数嵌套: 高级版本--匿名函数: 终极版本--filter函数: 在Python中总有些奇奇怪怪的函数,filter就是一个,但是它特别强大和实用,了解 ...
最新文章
- 深度学习在小分子药物研发中的应用
- DB2锁表或超时解决方案
- 图综合练习--拓扑排序_03 数据结构与算法 - 排序
- flask 模板 php,Flask四之模板
- 实习生解雇_我们解雇了我们的顶尖人才。 我们做出的最佳决定。
- LeetCode 954. 二倍数对数组(map计数)
- wxpython多线程 假死_wxpython中利用线程防止假死的实现方法
- GitHubamp;gitee图床网站源码
- Nginx域名重定向
- 性能测试学习笔记-如何管理loadrunner的临时文件
- Windows下python的配置
- Win10:fastboot驱动问题解决方案
- c语言表白用代码(1)
- phpstudy的基本使用方法
- し: make jianjie的文本网页
- DispatchQueue (SwiftUI Dispatch 中文手册)
- win7计算机图标缩在,win7桌面图标怎么变小?win7桌面图标变小解决方法
- Log4j2中RollingFile的文件滚动更新机制
- python 批量图片局部高斯模糊(图片水印处理)
- Glide控制显示图片上方2个圆角(或4个都是圆角)
热门文章
- 雀巢咖啡旗下感CAFÉ推出高端鎏光咖啡;武田剥离中国大陆非核心业务至海森 | 美通企业日报...
- 用MSYS2编译diction程序
- iOS基础 关于UIKit框架
- 2021/10/04 git 详细流程
- 如何阻止windows 联网自动激活,避免笔记本无法退货。
- 阻止浏览器冒泡和默认行为
- 心学与技术-大学之道和尽心知性
- 【JavaWeb】JSP:基本语法大全
- 灵遁者诗歌集《笔有千钧》下集,魔幻与现实,都很美
- __wakeup绕过版本_PHP__wakeup()方法