跳转至

第一章 数据类型与运算符

1.1 int 整型

Python的整数不用担心溢出!

1.1.1 进制

  • 十进制(默认)
  • 注:非零十进制数不能以0开头
  • 二进制(0b或0B开头)
  • 八进制(0o或0O开头)
  • 十六进制(0x或0X开头)

1.1.2 int()函数

int(x,base) #x可以是数或字符串
#e.g.
>>>int("0b100",base=0) #base=0表示自动识别进制
   4
>>>int(2.8)
   2 #只取整数部分

e.g. 错误示范

>>>int("10.0")  #对于底数10,"10.0"是非法的;int函数作用于字符串,字符串里面必须是整数
ValueError: invalid literal for int() with base 10: '10.0'  # (1)

  1. 🛠 修改方法:int("10")

1.1.3 小整数、大整数

Python的小整数范围(约):-50 ~ 500

e.g. 小整数

>>>x = 1
>>>y = 1
>>>z = 1  #1是小整数,x,y,z的内存地址都相同
>>>x == y
   True
>>>x is y
   True
>>>x == z
   True

e.g. 大整数

>>>a = 1000
>>>b = 1000
>>>c = a
>>>a == b  #a和b的值相同
   True
>>>a is b  #a和b的内存地址不同
   False
>>>a == c
   True

1.2 float 浮点型

  • 写成指数形式,一定是小数 e.g.
    >>>a = 28E3
    >>>type(a)
       <class 'float'>
    >>>a
       28000.0
    

    注:浮点运算可能不精确!

1.3 complex 复数

>>>z1 = 3+4j
>>>z2 = 2+5j
>>>z1*z2
   (-14+23j)

1.4 string 字符串

1.4.1 字符串运算

  • 加法(拼接)
>>>"Hello"+" "+"World!"
   'Hello World!'
  • 数乘
>>>'哈'*3
   '哈哈哈'
  • 索引
字符串中元素 1 2 3 ... n
正索引 0 1 2 ... n-1
负索引 -n ... -3 -2 -1
  • 切片
[start:end:step] #start省略默认为0(step为正时)
  • in 判断某个字符是否在字符串内

1.4.2 strip()函数

去掉string中的空格

1.4.3 转义字符

仅列举几个常用的:

转义字符 描述 转义字符 描述
\(在行尾时) 续行符 \n 换行
\b 退格(Backspace) \r 回车
\e 转义 \f 换页

不可用赋值的方法修改字符串!字符串是不可变对象!

>>>a = 'Hello'
>>>a[2] = 'L'
TypeError: 'str' object does not support item assignment

1.5 list 列表

1.5.1 索引与切片

与字符串类似

1.5.2 append()

在列表末尾添加元素

list.append()

insert()

在列表指定位置插入元素

list.insert(index,value)

1.6 dict 字典

{key:value}

1.7 tuple 元组

有序数组,不可修改。用圆括号表示。 e.g. 时间元组

(2023,12,24,22,0,0,6,358,-1) #本作业ddl的时间

1.8 运算符

1.8.1 算术运算符

运算符 描述
+ 两个数相加,或是字符串连接
- 两个数相减
* 两个数相乘,或是返回一个重复若干次的字符串
** 幂运算,返回乘方结果
/ 两个数相除,结果为浮点数(小数)
// 两个数相除,结果为向下取整的整数
% 取模,返回两个数相除的余数

1.8.2 比较(关系)运算符

运算符 描述
== 比较两个对象是否相等
!= 比较两个对象是否不相等
> (<) 大小比较,如 x 比 y 大(小),返回 True,否则返回 False
>= (<=) 比较两个对象是否相等大小比较,如 x 大于(小于)等于 y,返回 True,否则返回 False

1.8.3 赋值运算符

运算符 描述
= 常规赋值运算符
+= 加法赋值运算符,例如 a+=b 等效于 a=a+b
-= 减法赋值运算符,例如 a-=b 等效于 a=a-b
*= 乘法赋值运算符,例如 a=b 等效于 a=ab
/= 除法赋值运算符,例如 a/=b 等效于 a=a/b
%= 取模赋值运算符,例如 a%=b 等效于 a=a%b
**= 幂运算赋值运算符,例如 a=b等效于 a=ab
//= 取整除赋值运算符,例如 a//=b 等效于 a=a//b

1.8.4 逻辑运算符

运算符 描述
and “与”运算符,返回bool值
or “或”运算符,返回bool值
not “非”运算符,返回bool值
>>>print(1 > 2 and '1' > 2)
   False  #没有报错,因为 and “遇假则假”

1.8.5 位运算符

暂略

1.8.6 成员运算符

运算符 描述
in 当在指定的序列中找到值时返回 True,否则返回 False
not in 当在指定的序列中没有找到值时返回 True,否则返回 False

1.8.7 身份运算符

运算符 描述
is 判断两个标识符是否引用自同一个对象,若引用的是同一个对象则返回 True,否则返回 False
not is 判断两个标识符是不是引用自不同对象,若引用的不是同一个对象则返回 True,否则返回 False

1.8.8 运算符优先级

运算符 描述
**
~ 按位“取反”
*、/、%、// 乘、除、取模、取整除
+、- 加、减
>>、<< 右移、左移
& 按位“与”
^、∣ 按位“异或”、按位“或”
<=、<、>、>= 比较运算符
==、!= 等于、不等于
=、%=、/=、//=、-=、+=、=、*= 赋值运算符
is、is not 身份运算符
in、not in 成员运算符
and or not 逻辑运算符