day05数据类型(上)

常见的数据类型:

  • int ,整数类型(整型)
  • bool,布尔类型
  • str,字符串类型
  • list,列表类型
  • tuple,元组类型
  • dict,字典类型
  • set,集合类型
  • float,浮点类型(浮点型)

每种数据类型都有自己的特点及应用场景,以后的开发中需要根据实际的开发情况选择合适的数据类型

每种数据类型的讲解,会按照以下4个维度来进行:

  1. 定义
  2. 独有功能
  3. 公共功能
  4. 类型转换
  5. 其他

今日课程目标:掌握整型、布尔类型、字符串的必备知识

今日课程概要:

  • 整型
  • 布尔类型
  • 字符串类型

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.功能(...)
  1. 判断字符串是否以xx开头?得到一个布尔值

    v1 = "叨逼叨的一天,烦死了"# True
    result = v1.startwith('叨逼')print(result) # 值为True
    
    # 案例
    v1 = input('请输入住址:')
    if v1.startwith('北京市'):print('北京户口')
    else:print('非北京户口')
    
  2. 判断字符串是否以xx结尾?得到一个布尔值

    v1 = '叨逼叨的一天,烦死了'
    result = v1.endwith('烦死')
    print(result)  # False
    
    # 案例
    address = input('请输入地址:')
    if address.endwith('村'):print('农村户口')
    else:print('非农户口')
    
  3. 判断字符串是否为十进制数?得到一个布尔值

    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
    
  4. 去除字符串两边的空格、换行符、制表符,得到一个新字符串

    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 啊, 树’
    
  5. 字符串变大写,得到一个新字符串

    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""""
  1. 字符串变小写,得到一个新的字符串

    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('验证码错误')
    
  2. 字符串内容替换,得到一个新的字符串

    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)
    
  3. 字符串切割,得到一个列表

    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'
    
  4. 字符串拼接,得到一个新的字符串

# 将一个列表拼接成一个字符串
data_list = ['alex', '是', '大烧饼']v1 = '*'.join(data_list)  # alex*是*大烧饼 ,join()把列表当作参数
print(v1)v2 = ''.join(data_list) # 'alex是大烧饼'
print(v2)
  1. 格式化字符串,得到新的字符串

    name = '{0}的喜欢干很多专业, 例如有:{1}、{2}等'
    data = name.format('老王', '护士', '嫩模')
    print(data) # 老王的喜欢干很多专业, 例如有:护士、嫩模等
    
  2. 字符串转换为字节类型

    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)
    
  3. 将字符串内容居中、居左、居右展示

v1 = '章子怡'
data = v1.center(20, '												

day05数据类型(上)相关推荐

  1. 模块一 day05 数据类型(上)

    day05 数据类型(上) 接下来的3天的课程都是来讲解数据类型的知识点,常见的数据类型: int,整数类型(整形) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 ...

  2. day05 数据类型(上)

    day05 数据类型(上) 每种数据类型都有自己的特点及应用场景,以后的开发中需要根据实际的开发情况选择合适的数据类型. 1.整型 整型其实就是十进制整数的统称,比如:1.68.999都属于整型.他一 ...

  3. 轩小陌的Python笔记-day05 数据类型

    day05 数据类型(上) 接下来的3篇的内容都是讲解数据类型的知识点,常见的数据类型: int,整数类型(整型) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 d ...

  4. javascript-从toString方法在判断复杂数据类型上的妙用,引申到对原型链的理解...

    关于 toString 方法在有关js的开发中使用应该是相当广泛的,这两天在看jQuery的源码,从 toString 本身了解与巩固了不少知识,写出来与大家一同分享. 首先先上一段代码: var a ...

  5. Python基础入门----基本数据类型上

    Python基础入门篇 粉丝问题整理 前两节我们安装了Python3.7.0和Pycharm(代码编译器),本节我们从Python基本数据类型开始分享,不知道朋友们是否明白上两节的分享?如果没有请直接 ...

  6. day05 数据类型

    一.整形int 基本使用: 1,用途:记录年龄\等级\各种号码 2定义方式: age=18     age =int(18) x =int('123')#只能将纯数字的字符串转换成整形 print(t ...

  7. Python从入门到精通 - 入门篇 (上)

    转载自微信公众号:王的机器 0 引言 微信公众号终于可以插代码了,Python 可以走一波了.首先我承认不是硬核搞 IT 的,太高级的玩法也玩不来,讲讲下面基本的还可以,之后带点机器学习.金融工程和量 ...

  8. nsdata是java什么类型_Swift中基本数据类型与NSData转换

    Swift中基本数据类型与NSData转换 最近由于程序的需要,要与JAVA的服务端进行Socket的交互,那么这就牵涉到了数据的交互.Socket的数据交互一般都是直接采用二进制Bytes的方式来传 ...

  9. javascript如何判断变量的数据类型

    typeof 用法示例 var arr = []; typeof arr; //'object' typeof(arr); //'object' typeof实际上是一个一元运算符,因此可以用上述代码 ...

最新文章

  1. 动态规划与卫星任务规划
  2. SASE — Overview
  3. 磁共振线圈分类_收藏:磁共振检查序列及临床应用总结
  4. 15-Flutter移动电商实战-商品推荐区域制作
  5. C++基础1 数据类型 常量
  6. android h5 ftp,HBuilderX ftp插件使用教程
  7. 【收藏】请不要做浮躁的人
  8. 开课吧:C++基础之字符串匹配之BM算法(Boyer-Moore)
  9. C# 给picturebox添加滚动条
  10. java飞机大战微信版_微信飞机大战素材
  11. win10 C盘超过50G?教你如何对C盘瘦身!
  12. D365 ERP流程笔记
  13. steam删除本地的账号信息
  14. 安装制作 基础篇(一) 基本概念
  15. 从 virtio 网卡收包段错误问题出发反思个人问题分析的过程
  16. Java读写Excel原来这么简单
  17. 测试用的美国信用卡账号
  18. day15笔记:抽象类和抽象类方法、接口、内部类
  19. 把数据导出到Excel表格中的方式
  20. Mysql 分区大全及讲解

热门文章

  1. 蓝色大气的交替导航菜单
  2. 什么是HTML语义化标签?为什么要用H5语义化标签?HTML5语义化标签有哪些
  3. 嵌入式蓝桥杯G431RBT6 串口配置及使用方法cube MX
  4. c# 如何打印条形码
  5. 关于android读取用户号码,手机串号,SIM卡序列号
  6. VisualStudio 2019 新特性
  7. peewee mysql_Peewee、MySQL和INSERT忽略
  8. chrome设置开启GPU加速
  9. NB-IoT时域资源
  10. 深度分析短视频搬运视频消重九种方法各平台轻松过原创