视频地址(全部)

https://edu.csdn.net/course/detail/26057

课件地址(全部)

https://download.csdn.net/download/gentle__man/11858127

 课程目标

• Python3语言中内置的基本数据类型

数据类型

• C语言的变量类型

• C和Python语言变量类型对比

Number数值类型

• Python3中,只有一种整型类型int
• 内置的type()函数可以查询变量所指的对象类型
• 也可以使用内置的isinstance()函数来判断

•  内置的len()函数可以查询变量的元素个数
• Python3中 True的值是1 ,False的值是0
• 浮点只有单精度float,没有double双精度

练习

与或非  and or not

常量  大写

10/3  3.33333333335     取余    10%3    1

9/3  3.0    取整    9//3  3

平方 2**2  4    立方  2**3  8

String(字符串)

• Python中字符串三种标示
使用单引号(') str='this is string'
使用双引号(") str="this is string"
使用三引号(''') str='''this is string'''
• 字符串切片截取语法如下:
变量[起始下标:结束下标:步进]
• 反斜杠可以转义特殊字符
• 常用字符串操作函数 len(),replace(),index(),find(),split()等

练习

#赋值
item1 = 1
item2 = item1
item1 = 3
# print(item2)
# # 转义引号用\
a = 'hello i\'m python'
# 如果想把反斜杠输出出来,整个字符串前面加r
b = r'hello i\'m python'
# 字符串的拼接
# +
str = '你好'+'北京'
# list
list = ['你好', '北京']
list_str = ' '.join(list)
# format
str1 = '我喜欢{},因为我喜欢{}'.format('python', '钱')
str2 = 'abc'
# 切片 不包括冒号后面的
# print(str2[0:2])
# ab 从0到下标1 # print(str2[0:])
# abc 从0到最后 全部 # print(str2[:2])
# ab 从0到下标1 # print(str2[:-1])
# ab 从0到倒数第二个 # print(str2[::2])
# ac 从0到最后步进值为2 隔一个取一个 # 取反
str3 = 'abcdef'
# print(str3[::-1])
# fedcba #替换
# print(str3.replace('cd', '你好'))
# ab你好ef # 查找字符位置
str4 = str3.replace('cd', '你好')
# find 返回下标,找不到返回-1
# print(str4.find('你'))
# # index 返回下标, 找不到抛出异常
# print(str4.index('你'))
# # 字符在字符串出现的次数
str5 = 'abbccc'
# print(str5.count('c'))
# # 字符串转列表 字符串.split(分隔符)
str6 = '小红, 小白, 小蓝'
# print(str6.split(', '))

List(列表)

• List(列表)是一种有序集合,可以随时添加和删除其中元素
• 列表的元素可以不同
• 列表同样支持切片截取语法如下:
变量[起始下标:结束下标:步进]
• 列表格式[“yh”,“micheal”,“jack”],[]之间,元素逗号隔开
• 索引值从0开始,-1代表末尾
• 使用(+)可以连接两个列表,(*)是重复操作

 练习

# list 有序集合
list11 = ['a', 'b', 'c']
# print(type(list11))
# <class 'list'> 查看变量类型 # print(len(list11))
# 3 查看元素个数 # print(list11[0])
# a 用下标访问列表的元素 # print(list11[-1])
# c 用下标访问列表的元素 list11.append('d')
# print(list11)
# ['a', 'b', 'c', 'd'] 向列表追加元素(改变原有列表) list11.insert(1, 'new item')
# print(list11)
# ['a', 'new item', 'b', 'c', 'd']
# 向列表的指定位置添加元素,指定位置及其后面位置的原来元素向后移位 list11.pop(1)
# print(list11)
# ['a', 'b', 'c', 'd'] 删除列表的指定位置元素 list11[3] = 'replace item'
# print(list11)
# ['a', 'b', 'c', 'replace item'] 覆盖列表的指定元素 # 嵌套列表
list13 = ['a', 'b', ['c', 'd'], 'e']
# print(len(list13))
# 4 列表中的单个列表是一个元素

Tuple(元组)

• Tuple(元组)与列表类似,不同之处在于元组的元素不能修改
• 元组写在小括号()里,元素之 间用逗号隔开
• 元组中元素类型也可以不同
• 列表同样支持切片
• 索引值从0开始,-1代表末尾
• 如果元组中的元素只有一个,那么写成(1,),不要写成(1)

练习

# 元组
t1 = ('a', 'b', 'c')
# t1[1] = 1
# print(t1)
# TypeError: 'tuple' object does not support item assignment
# 元组定义后不能修改 t2 = (1)
# print(type(t2))
# <class 'int'>
t3 = (1,)
# print(type(t3))
# <class 'tuple'>
# 元组只有一个元素时元素后面加英文逗号 list1 = ['A', 'B']
t = ('a', 'b', list1)
t[2][0] = 'C'
# print(t)
# ('a', 'b', ['C', 'B'])
# 元组中引用的元素可以被修改 # t[2] = 'C'
# print(t)
# TypeError: 'tuple' object does not support item assignment
# 元组中引用不可以被修改

Set(集合)

• Set(集合),是一个无序不重复元素的序列
• 可以使用大括号 { } 或者set()函数创建集合
注意:创建一个空集合必须用set()而不是 { },因为
{ } 是用来创建一个空字典
• 创建格式:
{value1, value2, value3, value4,….}
或者
set(value)
• 集合之间可以进行:-差集 &交集 |并集 ^反交集

练习

# 集合
s = set([1, 2, 3])
# print(s)
# {1, 2, 3} 定义集合 s1 = set([1, 2, 2, 3, 3, 3])
# print(s1)
# {1, 2, 3} 自动去除重复元素 s.add(4)
# print(s)
# {1, 2, 3, 4}
# s.add(3)
# print(s)
# {1, 2, 3, 4}
# 添加的元素与原集合的元素不重复则添加,重复则集合去重后还是原集合 s.remove(4)
# print(s)
# {1, 2, 3} 删除集合指定元素,若指定元素不存在则抛出异常 SyntaxError: invalid syntax s2 = set([1, 2, 3])
s3 = set([3, 4, 5]) # print(s2 & s3)
# {3} s2 s3 的交集 共有的元素 # print(s2 | s3)
# {1, 2, 3, 4, 5} s2 s3 的并集 全部且去重的元素

Dictionary(字典)

• 字典(dictionary)是无序集合对象,元素是通过key-value键值对来存取的
• 字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)
对集合
• 键(key)必须使用不可变类型、在同一个字典中,键(key)必须是唯一的
• 另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。
• 字典方便我们使用查找和搜索功能
注意:
创建空字典使用 { }

练习

# 字典
# 无序 查找速度不随键值对的增减而增加 但是占用内存会增加 d = {'xiaohong': 79, 'xiaobai': 89, 'xiaolan': 99}
# print(d['xiaobai'])
# d['xiaohei'] = 69
# print(d)
# {'xiaohong': 79, 'xiaobai': 89, 'xiaolan': 99, 'xiaohei': 69}
# 字典如果没有该键值则添加元素 d['xiaohei'] = 59
# print(d)
# {'xiaohong': 79, 'xiaobai': 89, 'xiaolan': 99, 'xiaohei': 59}
# 字典如果有该键值则覆盖元素 # print('xiaohei' in d)
# True
# print('xiaohei1' in d)
# False
# 判断字典中是否有某个键值 有返回True 没有返回False # print(d.get('xiaohei1', -1))
# 判断字典中是否有某个键值 有返回键值对应的value值 没有返回第二个参数中的值,此处为-1
# -1 # print(d.pop('xiaohei'))
# print(d)
# 删除字典中指定的键值对,如果没有该键值则报错
# KeyError: 'xiaohei1'
# 如果有该键值返回该键值对应的value值
#
# {'xiaohong': 79, 'xiaobai': 89, 'xiaolan': 99} list2 = ['xiaohei']
# d[list2] = 26
# print(d)
# TypeError: unhashable type: 'list'
# 不能用列表作为字典的键值,列表是可变对象,要用数字,字符串这种非可变对象

小结

• Number(数字)
• String(字符串)
• List(列表)
• Tuple(元组)
• Sets(集合)
• Dictionary(字典)

【Day1】3.数据类型的更多相关文章

  1. Learn day1 变量/数据类型

    1.Python 简介 (1) 1989年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido). (2) python具有非常多并且强大的第三方库,使得程序开发起来 ...

  2. 小白的Python之路 day1 数据类型,数据运算

    一.数据类型初识 1.数字 2 是一个整数的例子.长整数 不过是大一些的整数.3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3 * 10-4.(-5+4j ...

  3. day1(变量、常量、注释、用户输入、数据类型)

    一.变量 name = "SmallNine" 等号前面是变量名(标识符),等号后面是变量值 变量的主要作用:就是把程序运算的中间结果临时存到内存里,已备后面的代码继续调用. 变量 ...

  4. DAY1初识Python----变量及命名规则,注释,数据类型,常量,交互

     1.认识和了解python  python是一门解释型语言,弱类型语言 2.python发展史   2008年 2.X,3.X 3.第一个python程序  python语句可以写在命令行中,进行编 ...

  5. Python之旅Day1 数据类型初识(数字|字符串|列表|数据运算) 编码 表达式(if...else|for|while)

    初识PYTHON Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(吉多·范罗苏姆)于 ...

  6. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  7. Day1 数据类型

    整数 十六进制和八进制使用0作为前缀,如 0x12f , 010浮点数 可以用科学计数法来表示很大或者很小的浮点数,如 1.23x10^9 可以写作 1.23e9 或者12.3e8 ,0.000012 ...

  8. Python. Day1. 之初识 变量数据类型

    稍后添加 一  介绍 二  变量

  9. redis数据类型及使用场景

    Redis数据类型  String: Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字. 常用命令:  set,get,decr,incr,mge ...

随机推荐

  1. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-2.快速搭建SpringBoot项目,采用IDEA

    笔记 2.快速搭建SpringBoot项目,采用IDEA     简介:使用SpringBoot start在线生成项目基本框架并导入到IDEA中 参考资料:         IDEA使用文档    ...

  2. 3年磨一剑,我的前端数据 mock 库 http-mock-middleware

    不好意思,离开博客园4年多了,一回来就是为自己打广告,真是害羞啊... http-mock-middleware 是我最近完成的一个前端数据 mock 库.它是我汇总近3年工作经验而诞生的一个工具,使 ...

  3. Java虚拟机new对象

    类加载检查java虚拟机在遇到一条 new 指令时,首先会检查是否能在常量池中定位到这个类的符号引用,并且是否已被加载过.解析和初始化过.如果没有,那必须先执行类加载过程 类加载的相关知识可参考:JV ...

  4. k8s nginx-ingress 上传文件大小限制

    k8s集群中,将图片或是文件上传到文件服务器上, 可是大于1M是就会报错 413 Request Entity Too Large 以前用的是:    # ingress.kubernetes.io/ ...

  5. Ingreslock后门漏洞

    一.简介 1524端口 ingreslock Ingres 数据库管理系统(DBMS)锁定服务 利用telnet命令连接目标主机的1524端口,直接获取root权限. Ingreslock后门程序监听 ...

  6. C学习笔记-运算符

    一些基本概念 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 算数运算符 运算符 描述 实例 + 把两个操作数相加 a + b - 从第一个操作数中减去第二个 ...

  7. PowerShell .Net整套环境搭建及部署系列

    此系列包含一套完整的集群部署,全是个人原创(除第一个是摘抄的),转载请注明出处 其中DFS部分在国内资料极少,且全是重复的,还是外面好些,有问题可以给出解决方案 若内容有不详之处或你也同样被DFS所困 ...

  8. 解MySQL基准测试和sysbench工具

    前言 作为一名后台开发,对数据库进行基准测试,以掌握数据库的性能情况是非常必要的.本文介绍了MySQL基准测试的基本概念,以及使用sysbench对MySQL进行基准测试的详细方法. 文章有疏漏之处, ...

  9. [转帖]为何 linux 要用 tar.gz,而不用 7z 或 zip?

    为何 linux 要用 tar.gz,而不用 7z 或 zip? http://embeddedlinux.org.cn/emb-linux/entry-level/201908/13-8776.ht ...

  10. kettle转换设置变量,校验输出新变量

    背景:有很多小的转换需要串联起来,如果前一个执行成功,后面继续接着执行,如果执行等待中,就让程序等一会再次获取数据分析,如果失败就中止,成功就进行下一个转换,以此类推.... 需求:通过job把参数传 ...