python学习--基本类型与基本概念

/ 除法 float
// 整除 int

二进制
0b10
十进制
10
八进制
0o10
十六进制
0x10

进制转换
bin() 转化为二进制
int() 转化为十进制
hex() 转化为十六进制
oct() 转化为八进制

number : 整数(int) 浮点数(float) bool 复数

bool 0 和 空值  None 都为 False
     非空值都为 True
     方法 bool() 转化为布尔类型
complex复数: 36j

字符串 str :
单引号:‘’
双引号: “”
“let’s go” // 引号表示字符串一定要成对出现

转义字符 \  'let\'s go'
三引号:多行字符串
        \n 换行
        
三引号换行方式  直接打回车

单双引号换行方式

 'hello\
    world'    // 'helloword'
转义字符:
特殊的字符 
记: \r 回车
     \n 换行 转义字符把 n 转义了
     
// 原始字符串
r'c:\nnn'  // 等同于'c:\\nnn'
当一个字符串前面加一个 r ,则字符串就不是一个普通字符串了,而是一个原始字符串
// print(r'c:\nsd\nds')
// 所以r的意思就是告诉机器,我们要用到语句中的特殊符号

字符串基本操作:
+ 字符串拼接
* ‘ghj’*3 字符串重复3次(只能和数字做相乘)
[序号(下标)] 访问字符串中的任意一个字符
// 正数代表序号
// 负数从字符串末尾数 -1 开始
截取字符串: [0:n] 第n个不包含(n也可以为负数)
// ‘hello world’[6:11] [6:20] 写的太大自动转到最大
// ‘hello world’[6:] 截取字符串到末尾
// ‘hello world’[:6] 截取字符串默认从头开始
// ‘hello world’[-5:] 截取字符串从-5开始包含-5
‘hello world’[11:15] // 开头、截止都越界
// 结果’’

序列 str list tuple 有顺序同时每一个元素被分配一个序号
1.列表 list [1,2,3,4,5]
里面的元素可以是不同类型
嵌套列表 [[1,2,3],[3,4],[‘hello’, True]]

列表的基本操作:
    访问元素:[1,2,3,4][0]  // 1
              ['hello','world'][1]  // 'world'
              [1,2,3,4][0:2]  // [1,2]
              含有冒号的操作返回的是列表
    列表合并 []+[]
    列表重复 []*3

2.元组 tuple (1,2,3,4)
里面的元素可以是不同类型
嵌套列表 ((1,2,3),(3,4),(‘hello’, True))

元组的基本操作:
    访问元素:(1,2,3,4)[0]  // 1
              ('hello','world')[1]  // 'world'
              (1,2,3,4)[0:2]  // (1,2)
              含有冒号的操作返回的是列表
    列表合并 ()+()
    列表重复 ()*3
    元素是否在序列中  3 in [1,2,3,4] // True
                      'll' not in 'hello' // False
    序列中有几个元素 len((1,)) // 1
                     max([1,2,3]) // 3
                     min([1,2]) // 1
                     max([1,'ll']) // 报错不同类型不能比较
type((1))
<class 'int'> 
// 因为()也是数学运算符号,所有当里面只有一个元素时,()为数学运算符合
   所以要定义只有一个元素的元组 (1,) 要加一个 ,

‘hello world’[0:8:2]
‘hlow’
ord() // 将字母转化成ascall码

集合 set {}
无序 元素不可重复
{11,2,3}
集合的基本操作
集合长度:len()
是否包含某个元素: 1 in {11,2,1}
not in
求两个集合的差集 剔除元素(减法):
{1,2,3,4,5,6} - {3,4} // {1,2,5,6}
求两个集合的交集:共有的元素
{1,2,3,4,5,6} & {3,4} // {3,4}
求两个合计的并集:
{1,2,3,4,5,6} | {3,4,7} // {1,2,3,4,5,6,7}

定义空的集合: set()

字典 dict
key value 字典不能有相同的key,虽然不报错
{key1: value1, key2: value2…}
{‘q’: ‘xxx’, ‘w’:‘ccc’, ‘e’:‘yyy’, ‘r’:’'ddd}
value: 任意一种数据类型
key: 必须是不可变的类型 int str tuple

{(1, 2): 'xxx', 'w': 'ccc', 'e': 'yyy', 'r': 'ddd'}
{(1, 2): 'xxx', 'w': 'ccc', 'e': 'yyy', 'r': 'ddd'}[(1,2)]

空字典 {}

变量
赋值符合
A = [1,2,3,4,5,6 ]
变量名规范:首字符不能是数字
包含数字 字母 下划线
系统保留关键字不能用在变量名中(保留关键字)
区分大小写
python里的变量没用类型上的限制
python变量不需要定义,不存在变量的定义

c = 1
把1赋值给变量c, 而不是定义一个变量c

值类型与引用类型
引用类型本身内的数值是可以改变的
值类型:int str tuple
引用类型:list set dict
id() // 用于显示变量在内存中的地址
在这里插入图片描述
不可改变是指类型内的数值不能改变

列表的可变性与元组的不可变性

a = [1,2,3]
a[0] = 4  ok
a.qppend(5) // 追加元素
b = (1,2,3)
b[0]= 4  no
b.qppend(5)  no 

在这里插入图片描述
类型内值不能修改,是指值的地址不能改变

运算符
  1. 算数运算符
  • 加法 还可用于拼接
  • 乘法 还可用于重复
  • 减法 还可用于集合剔除元素(仅限集合)
    / 除法
    // 整除
    % 求余
    22 2的2次方 23 ** 次方

2.赋值运算符
算数运算符 基础上加 =
= += = /= %= //= -=
python里没用自增、自减 运算符
3.比较(关系)运算符
== != < > <= >= 返回布尔值
数字 字符串 布尔类型 list tuple 都可进行比较运算(同类型之间进行比较)
集合,字典的比较运算是 比较 包含与否的关系
布尔类型本身是一种Number类型,所以可以与int float进行运算(运算时布尔类型转换成int 或 float)
4.逻辑运算符
主要操作布尔类型 返回结果也是布尔类型
*(这里的布尔类型,都可通过转换关系进行转换)**
and 且(与 )
or 或
not 非(单目运算符) 一定返回布尔类型(与 or not 不同)
在这里插入图片描述
逻辑运算中,非布尔类型可以转换为布尔类型
非布尔类型 何时 会被当做 True 参与 逻辑运算
int float 为0被认为是False ,非0 被认为是True
字符串 空字符串 False, 其余True
列表 空列表为 False ,其余为True
tuple set dict 与列表相同

注意返回值:(and 和 or 返回值与运算数有关)
在这里插入图片描述
注意运算顺序:
在这里插入图片描述
5.成员运算符
in not in
用于判断一个元素是否在另外的一组元素里
返回值是布尔类型
列表 字符串 元组 集合 dict都可进行成员运算字典的成员运算是针对 key 进行运算的
6.身份运算符
is not is
返回值为布尔类型
比较两个变量的内存地址(身份),若相等返回True
在这里插入图片描述
原因:
数字 int 值与身份都相同**(int 为值类型,不可变,所以地址一样)**
集合set 无序,所以取值相等,但是内存地址不同**(内存地址不同是因为set为引用类型)**
元组tuple 有序,所以都返回False

值 身份 类型 是对象的三个特征
判断类型:(isinstance可以判断变量的子类是否属于某种类型,而type不行)

1.type(a) == str
2.isinstance(变量,变量类型)   
  isinstance(变量,(元组里加好几种类型))   // 变量是否是元组中的一个
a = 1
type(a) == int
True
isinstance(a,int)
True

7.位运算(把数字当作对二进制数进行运算)

符号名称
&按位与
竖杠按位或
^按位异或
~按位取反
<<左移动
>>右移动
表达式
  1. 表达式时运算符和操作数所构成的序列
  2. 表达式里可以包含函数调用
表达式的优先级

not的优先级>and的优先级>or的优先级
表达式通常是左结合(计算从左向右),但是 = 为右结合

a=1
b=2
c= a or b   // 因为 = 右结合,即使运算符优先级高于逻辑运算符,也先算右边

c=2
not a or b + 2 == c  // False  =>  (not a) or ((b + 2) == c) 关系运算符优先级大于逻辑运算符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值