day05数据类型(上)
day05数据类型(上)
常见的数据类型:
- int ,整数类型(整型)
- bool,布尔类型
- str,字符串类型
- list,列表类型
- tuple,元组类型
- dict,字典类型
- set,集合类型
- float,浮点类型(浮点型)
每种数据类型都有自己的特点及应用场景,以后的开发中需要根据实际的开发情况选择合适的数据类型
每种数据类型的讲解,会按照以下4个维度来进行:
- 定义
- 独有功能
- 公共功能
- 类型转换
- 其他
今日课程目标:掌握整型、布尔类型、字符串的必备知识
今日课程概要:
- 整型
- 布尔类型
- 字符串类型
1. 整型
整型其实就是十进制整数的统称,比如:1、68、999都属于整型。他一般用于表示年龄、序号等。
1.1 定义
number = 10
age = 99
1.2 独有功能
无
v1 = 5
print(bin(v1)) # 0b101
# 调用v1(int)的独有功能, 获取v1的二进制表示有多少个位组成
result = v1.bit_length()
print(result) # 3 个二进制位组成 101v2 = 10
print(bin(10)) # 0b1010
# 调用v1(int)的独有功能, 获取v1的二进制表示有多少个位组成
result = v2.bit_length()
print(result) # 4 个二进制位组成 1010
1.3 公共功能
加减乘除
v1 = 4
v2 = 8
v3 = v1 + v2
1.4 转换
在项目开发和面试题中经常会出现一些“字符串”和布尔值转换为整型的情况。
# 布尔类值转整型
n1 = int(True) # True转为整数 1
n2 = int(False) # False转为整数 0# 字符串转整数
v1 = int('186', base=10) # 把字符串看出十进制的值,然后再转为 十进制整数,结果:v1 = 186
v2 = int('0b1001', base=2) # 把字符串看成二进制的值,然后转为 十进制整数, 结果:v2 = 9
v3 = int('0o144', base=8) # 把字符串看成八进制的值,然后转为 十进制整数,结果:v3 = 100
v4 = int('0x59', base=16) #把字符串看成十六进制的值,然后转为 十进制整数,结果:v4 = 89# 浮点型
v1 = int(8.7) # 8
所以,如果以后别人给你一个按二进制、八进制、十进制、十六进制规则存储的字符串时,可以轻松的通过int转为十进制的整数。
1.5 其他
1.5.1 长整型
- Python3:整型
- Python2:整型、长整型
在python2中跟整数相关的数据类型有两种:int(整型)、long(长整型),它们都是整数只不过能表示的值范围不同。
- int,可表示的范围:-9223372036854775808~9223372036854775807
- long,整数值超出int范围之后自动会转成long类型(无限制)
在Python3中除了long只剩下:int(整型),并且int长度不再限制。
1.5.2 地板除
Py3:
v1 = 9/2 print(v1) # 4.5
Py2:
v1 = 9/2 print(v1) # 4
from __future__ import division v2 = 9/2 print(v2) # 4.5
2. 布尔类型
布尔值,其实就是“真”、“假”
2.1 定义
data = False
alex_is_sb = True
2.2 独有功能
无
2.3 公共功能
无
v1 = True + True
print(v1) # 2
2.4 转换
在以后的项目开发中,会经常使用其他类型转换为布尔值的情景,此处只要记住一个规律即可。
整数0、空字符串、空列表、空元组、空字典转换为布尔值时均为False
其他均为True
# 练习题:查看一些变量为True还是False
v1 = bool(0) # False
v2 = bool(-10) # True
v3 = bool(10) # True
v4 = bool('刘小伟') # True
v5 = bool('') # False
v6 = bool(' ') # True
v7 = bool([]) # False
v8 = bool([1, 2, 3]) # True
v9 = bool({}) # False
v10 = bool({'name': '刘小伟', 'age':49}) # True
2.5 其他
如果在if 、while条件后面写一个值当作条件时,他会默认转换为布尔类型,然后再做条件判断。
if 666:print('太六了')if '刘小伟':print('你好')if 'alex':print('你是傻逼?')
else:print('你是逗比?')
while 1 > 9:pass
if 值:passwhile 值:pass
3. 字符串类型
字符串,我们平时会用它来表示文本信息。例如:姓名、地址、自我介绍等。
3.1 定义
v1 = '包治百病'
v2 = "包治百病"
v3 = "包'治百病"
v4 = '包"治百病'
v5 = """
吵架都是我的错,
因为大家打不过。
"""
# 三个引号,可以支持多行/换行表示一个字符串,其他的都只能在一行中表示一个字符串
3.2 独有功能 (18/48)
"xxxxx".功能(...)v1 = "xxxxx"
v1.功能(...)
判断字符串是否以xx开头?得到一个布尔值
v1 = "叨逼叨的一天,烦死了"# True result = v1.startwith('叨逼')print(result) # 值为True
# 案例 v1 = input('请输入住址:') if v1.startwith('北京市'):print('北京户口') else:print('非北京户口')
判断字符串是否以xx结尾?得到一个布尔值
v1 = '叨逼叨的一天,烦死了' result = v1.endwith('烦死') print(result) # False
# 案例 address = input('请输入地址:') if address.endwith('村'):print('农村户口') else:print('非农户口')
判断字符串是否为十进制数?得到一个布尔值
v1 = '1238871' result = v1.isdecimal() print(result) # True
# 案例, 两个数字相加v1 = input('请输入值:') v2 = input('请输入值:') if v1.isdecimal() and v2.isdecimal(): data =int(v1) + int(v2)print(data) else:print('请输入数字!')
v1 = '123' print(v1.isdecimal())v2 = '①' print(v2.isdecimal()) # Falseprint(v2.isdigit()) # True
去除字符串两边的空格、换行符、制表符,得到一个新字符串
data = input('请输入内容:') #刘小伟, 刘小伟+3个空格 print(data)
msg = ' He ll o 啊, 树哥 ' data = msg.strip() print(data) # 将msg两边的空白去掉,得到’Hello 啊, 树哥’
msg = ' He ll o 啊, 树哥 ' data = msg.lstrip() print(data) # 将msg两边的空白去掉,得到’Hello 啊, 树哥 ’
msg = ' He ll o 啊, 树哥 ' data = msg.rstrip() print(data) # 将msg两边的空白去掉,得到’ Hello 啊, 树哥’
补充:去除空格、换行符、制表符
# 案例 code = input('请输入4位密码:') data = code.strip() if data == 'FB87':print('验证码正确') else:print('验证码错误')
再补充:去除字符串两边指定的内容
msg = '哥 He ll o 啊, 树哥 ' data = msg.strip('哥')print(data) # 将msg两边的空白去掉,得到’ Hello 啊, 树’
msg = '哥 He ll o 啊, 树哥 ' data = msg.lstrip('哥')print(data) # 将msg两边的空白去掉,得到’Hello 啊, 树哥’
msg = '哥 He ll o 啊, 树哥 ' data = msg.rstrip('哥')print(data) # 将msg两边的空白去掉,得到’哥 Hello 啊, 树’
字符串变大写,得到一个新字符串
msg = 'my name is olive queen' data = msg.upper() print(data) # my name is olive queen print(data) # 输出:MY NAME IS OLIVE QUEEN
```python# 案例code = input('请输入4位密码:') # FB88 fb88value = code.upper() # FB88data = value.strip() # 去除空格、tab制表符、换行符if data == 'FB87':print('验证码正确')else:print('验证码错误')# 注意事项:"""code的值"fb88 "value的值"FB88 "data的值"FB88""""
字符串变小写,得到一个新的字符串
msg = 'My Name Is Oliver Queen' data = msg.lower()print(data) # 输出:my name is oliver queen
# 案例 code = input('请输入4位密码:') # FB88 fb88 value = code.strip.lower() # fb88if value == 'fb87':print('验证码正确') else:print('验证码错误')
字符串内容替换,得到一个新的字符串
data = "你是个好人,但是好人不合适我"print(data) # '你是个好人,但是好人不合适我'value = data.replace('好人', '贱人')print(value) # 输出为:'你是个贱人,但是贱人不合适我'
# 案例 video_file_name = '高清无码爱情动作片.mp4'new_file_name = vidoe_file_name.replace('mp4', 'avi') # '高清无码爱情动作片.avi'final_file_name = new_file_name.replace('无码', '步兵') # '高清步兵爱情动作片.avi'print(final_file_name)
# 案例 video_file_name = '高清无码爱情动作片.mp4'new_file_name = vidoe_file_name.replace('mp4', 'avi') # '高清无码爱情动作片.avi'final_file_name = video_file_name.replace('无码', '步兵') # '高清步兵爱情动作片.mp4'print(final_file_name)
# 案例 content = input('请输入评论信息') # alex是一个草包content = content.replace('草', '**') # alex是一个**包content = content.replace('尼玛', '***') # print(content)
char_list = ['草泥马', '逗比', '二蛋', '钢球', '棒球']content = input('请输入评论信息:') for item in char_list:# item='草泥马'content = content.replace(item, '***')print(content)
字符串切割,得到一个列表
data = '刘小伟|root|liuxiaowei@qq.com' result = data.split('|') # 以列表的形式['刘小伟', 'root', 'liuxiaowei@qq.com']print(data) # '刘小伟|root|liuxiaowei@qq.com' print(result) # ['刘小伟', 'root', 'liuxiaowei@qq.com'] 根据特定字符切开之后保存在列表中,方便以后的操作
# 案例 info = '刘小伟,root' # 备注:字符串中存储了用户名和密码 user_list = info.split(',') # 得到一个包含2个元素的列表['刘小伟', 'root']# user_list[0] # user_list[1] user = input('请输入用户名:') pwd = input('请输入密码:')if user == user_list[0] and pwd == user_list[1]:print('登录成功') else:print('用户名或密码错误')
扩展
# 指定切割的数量,从第几个分割符开始切割 data = '刘小伟|root|liuxiaowei@qq.com' v1 = data.split('|') print(v1) # ['刘小伟', 'root', 'liuxiaowei@qq.com']v2 = data.split('|', 1) # 从第一个'|'开始切割 print(v2) # ['刘小伟', 'root|liuxiaowei@qq.com']
再扩展
# 从左或右切割 data = '刘小伟|root|liuxiaowei@qq.com' v1 = data.rsplit('|') # 从右开始切割 print(v1) # ['刘小伟', 'root', 'liuxiaowei@qq.com']v2 = data.rsplit('|', 1) print(v2) # ['刘小伟|root', 'liuxiaowei@qq.com']
应用场景
# 获取指定路径的扩展名 file_path = 'xxx/xxxx/xx.xx/xxx.mp4' extend_name_list = file_path.rsplit('.', 1) # ['xxx/xxxx/xx.xx/xxx', 'mp4'] extend_name_list1 = file_path.split('.') # ['xxx/xxxx/xx', 'xx/xxx', 'mp4'] extend_name = extend_name_list[1] # 'mp4'
字符串拼接,得到一个新的字符串
# 将一个列表拼接成一个字符串
data_list = ['alex', '是', '大烧饼']v1 = '*'.join(data_list) # alex*是*大烧饼 ,join()把列表当作参数
print(v1)v2 = ''.join(data_list) # 'alex是大烧饼'
print(v2)
格式化字符串,得到新的字符串
name = '{0}的喜欢干很多专业, 例如有:{1}、{2}等' data = name.format('老王', '护士', '嫩模') print(data) # 老王的喜欢干很多专业, 例如有:护士、嫩模等
字符串转换为字节类型
data = '嫂子' # unicode 字符串类型v1 = data.encode('utf-8') # utf-8 字节类型 v2 = data.encode('gbk') # gbk,字节类型 print(v1) # b'\xe5\xab\x82\xe5\xad\x90' (1个中文3个字节) print(v2) # b'\xc9\xa9\xd7\xd3' (1个中文2个字节)s1 = v1.decode('utf-8') # 嫂子 s2 = v2.decode('gbk') # 嫂子 print(s1) print(s2)
将字符串内容居中、居左、居右展示
v1 = '章子怡'
data = v1.center(20, '
day05数据类型(上)相关推荐
- 模块一 day05 数据类型(上)
day05 数据类型(上) 接下来的3天的课程都是来讲解数据类型的知识点,常见的数据类型: int,整数类型(整形) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 ...
- day05 数据类型(上)
day05 数据类型(上) 每种数据类型都有自己的特点及应用场景,以后的开发中需要根据实际的开发情况选择合适的数据类型. 1.整型 整型其实就是十进制整数的统称,比如:1.68.999都属于整型.他一 ...
- 轩小陌的Python笔记-day05 数据类型
day05 数据类型(上) 接下来的3篇的内容都是讲解数据类型的知识点,常见的数据类型: int,整数类型(整型) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 d ...
- javascript-从toString方法在判断复杂数据类型上的妙用,引申到对原型链的理解...
关于 toString 方法在有关js的开发中使用应该是相当广泛的,这两天在看jQuery的源码,从 toString 本身了解与巩固了不少知识,写出来与大家一同分享. 首先先上一段代码: var a ...
- Python基础入门----基本数据类型上
Python基础入门篇 粉丝问题整理 前两节我们安装了Python3.7.0和Pycharm(代码编译器),本节我们从Python基本数据类型开始分享,不知道朋友们是否明白上两节的分享?如果没有请直接 ...
- day05 数据类型
一.整形int 基本使用: 1,用途:记录年龄\等级\各种号码 2定义方式: age=18 age =int(18) x =int('123')#只能将纯数字的字符串转换成整形 print(t ...
- Python从入门到精通 - 入门篇 (上)
转载自微信公众号:王的机器 0 引言 微信公众号终于可以插代码了,Python 可以走一波了.首先我承认不是硬核搞 IT 的,太高级的玩法也玩不来,讲讲下面基本的还可以,之后带点机器学习.金融工程和量 ...
- nsdata是java什么类型_Swift中基本数据类型与NSData转换
Swift中基本数据类型与NSData转换 最近由于程序的需要,要与JAVA的服务端进行Socket的交互,那么这就牵涉到了数据的交互.Socket的数据交互一般都是直接采用二进制Bytes的方式来传 ...
- javascript如何判断变量的数据类型
typeof 用法示例 var arr = []; typeof arr; //'object' typeof(arr); //'object' typeof实际上是一个一元运算符,因此可以用上述代码 ...
最新文章
- 动态规划与卫星任务规划
- SASE — Overview
- 磁共振线圈分类_收藏:磁共振检查序列及临床应用总结
- 15-Flutter移动电商实战-商品推荐区域制作
- C++基础1 数据类型 常量
- android h5 ftp,HBuilderX ftp插件使用教程
- 【收藏】请不要做浮躁的人
- 开课吧:C++基础之字符串匹配之BM算法(Boyer-Moore)
- C# 给picturebox添加滚动条
- java飞机大战微信版_微信飞机大战素材
- win10 C盘超过50G?教你如何对C盘瘦身!
- D365 ERP流程笔记
- steam删除本地的账号信息
- 安装制作 基础篇(一) 基本概念
- 从 virtio 网卡收包段错误问题出发反思个人问题分析的过程
- Java读写Excel原来这么简单
- 测试用的美国信用卡账号
- day15笔记:抽象类和抽象类方法、接口、内部类
- 把数据导出到Excel表格中的方式
- Mysql 分区大全及讲解
热门文章