day2 基本数据类型

day2 基本数据类型

1. 数字

整数int 浮点数float 布尔类型bool 复数
特殊:整型除法结果是浮点型 type(2/2)是float 而非int
若想得到除法int型 type(2//2) (//是整除)
只有bool(0)和bool(空值)是False,非0数非空值布尔值都是True
进制:2 8 10 16
二进制:0b开头(0、1、10表示2.。。)
八进制:0o开头(0、1、2、3、。。7、10表示8.。。)
十六进制:0x开头(0、1、2、3、。。9、A\B\F\ 10表示16.。。)
进制转换:转二进制bin() 转十进制int() 转16进制hex() 转八进制oct()

2.字符串(一种序列)【不可变类型】

单引号、双引号、(为什么有单引号还要设置双引号? let’s go)
三引号: 实现换行

\转义字符: idle内部不能直接识别转义字符
print()才可以显示转义字符

  • 一类: 表示无法看见的字符\n \t
  • 二类: 与语言本身有冲突的字符 ’ (或在开始+r,避免转义)

在打印文件路径常用 两种方法忽略其中的转义字符:

  • 给转义字符加转义
  • 句首+r

字符串运算:
拼接:+ (*数字 乘法表示重复字符串几次)
截取字符串中的某一字符 :通过 [ 下标 ]可正可负
截取字符串中的某一串字符(切片) :通过 [ 下标:下标 ]可正可负
(【】前包含,后不包含 前后可省略其中一个表示从头取,或取完)

3.列表(表示组的一种方式 称为一种序列)list 【可变类型】

[1,2,3,4,5,6]
一个列表的内部元素可以不是一种类型,列表内部还可以嵌套列表

列表基本操作
1.截取操作与字符串类似 (取多个,如list[0:2],取到的是新列表)
2.两列表拼接:+ (没有减法操作)
同一列表内容重复:*数字

4.元组(表示组的第二种方式 序列)tuple 【不可变类型】

(1,2,3,4,5)
内部元素可以不是一种类型
截取操作与字符串和列表类似

Q:为什么要区别元组和列表?
A:区别:(待编辑)

Q:为什么在idle中,单元素元组的type不是tuple,而是元素自身的类型?
day2 基本数据类型
A:()小括号有两层含义 一种是元组 一种是普通的数学运算符号,如(1+1)*2
((1))形式会认为是要做数学运算 所以并没有打印类型 只是做了简单数学运算
那么如何才能定义只有一个元素的元组? ((1,))
那么如何才能定义只有空元素的元组? (())

序列的一些补充操作

1.判断列表中是否存在某一元素?
3 in [1,2,3,4]
是否不在?3 not in [1,2,3,4]
返回的是布尔类型

2.序列内部总共有多少元素?
len()

3.求序列内部极值元素?
max() min()

4.查看ascII码的方式
ord(’ ')

5. 集合 set(无序)

{1,2,3,4,5,6}
基本特性:

  • 1.无序(与上述几种 序列 不同,字符串列表元组都是有序的序列)
    所以不支持截取、切片
  • 2.不重复 (内部不能包含相同元素

基本操作:

  • 1.求集合长度 len({1,2,3})
  • 2.判断内部是否包含某一元素 1 in {1,2,3} 1 not in {1,2,3}

特殊操作

  • 将一个集合中的内容从另一集合剔除:{1,2,3} - {2} (列表没有这个操作)
  • 找出两个集合共有的元素:{1,2,3} & {2,3} (交集)
  • 将两个集合合并成一个,新集合中无相同元素:{1,2,3} | {2,3,4} (合集)

Q:如何定义空集合?
A:set()

6.字典 dict(无序)

特点:
每一个汉字都有唯一标识
key-value ,通过key 找到value
一个字典有很多个key和value,属于集合类型(set),无序

定义字典:
{key1:value1,key2:value2}

空字典定义:
直接 {}

基本操作:
无序 与set相似,没有截取、切片
不能有相同key
字典的key,必须是不可变数据类型 如,int str,不能是列表,但可以是元组
字典的value,可以是任意数据类型

访问方式:
通过key,访问value {“Q”:1, “W”:2, “E”:3, “R”:4}[“Q”]

总结导图

day2 基本数据类型