Python的运算符和控制符

本文介绍了Python中的数据类型,包括数字、字符串、布尔值、列表、元组、集合和字典。详细讲解了变量的概念、命名规则和类型测试。此外,还涵盖了Python的运算符,如算术、比较、赋值、位、成员和身份运算符,以及它们的优先级。最后提到了数据类型的强制转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新内容

数据类型

  • 文本

  • 图形

  • 数据型数据

  • 音频

  • 视频

  • 网页数据

  • 等等

    不同的数据,需要定义不同的数据类型

    Python中常见的数据类型

    • 数字(number)

    • 字符串(String)

    • 布尔值(bool)

    • 列表(list)

    • 元组(tuple)

    • 集合(set)

    • 字典(dict)

      变量

      概念

      • 程序可操作的储存区名称
      • 程序运行储存区中能改变的数据
      • 每个变量都有特定的类型
    • 作用:将数据储存到内存

    • 变量的定义

      • java
1.定义变量名称,数据类型
2.变量赋值

java中两步,Python中一步搞定:

变量名=初始值=(初始值的实际类型决定数据类型)
>>> a=1
>>> b=1.56
>>> c="abc"
>>> d=[1,2,3]
>>> e=(1,2,3)
>>> f={1,2,3}
>>> g={"name":"wyt"}
>>> print(type(a))
<class 'int'>
>>> print(type(b))
<class 'float'>
>>> print(type(c))
<class 'str'>
>>> print(type(d))
<class 'list'>
>>> print(type(e))
<class 'tuple'>
>>> print(type(f))
<class 'set'>
>>> print(type(e))
<class 'tuple'>
>>> print(type(f))
<class 'set'>
>>> print(type(g))
<class 'dict'>
  • 变量的命名

    • 字母/数字/下划线

    • 不能以数字开头

    • 不能使用python关键字

      注意:通常命名是时不以单下划线和双下划线开头。因为Python中单下划线和双下划线开头的变量有特殊用途。

      • 见名只意
      • 小驼峰(dayName)
      • 大驼峰(DayName)
      • 下划线连接(day_name)
  • 关键字查看

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>>

  • 变量类型测试

    type(变量名)
    
  • 查看变量内存地址

    id(变量名)
    
    >>> f={1,2,3}
    >>> g={"name":"wyt"}
    >>> type(f),id(f)
    (<class 'set'>, 1574745136488)
    >>> type(g),id(g)
    (<class 'dict'>, 1574745203624)
    >>>
    

    变量的调用

    a=1 
    b=2
    c=a+b
    print(c)
    

    两值交换

    >>> x=12
    >>> y=16
    >>> x,y=y,x
    >>> x,y
    (16, 12)
    >>>
    
    

    同时赋值

    >>> a=b=c=3
    >>> print(a,b,c)
    3 3 3
    >>> a,b,c=1,2,3
    >>> print(a,b,c)
    1 2 3
    >>> tuple=1,2,3
    >>> print(tuple,type(tuple))
    (1, 2, 3) <class 'tuple'>
    >>>
    a,b,c=3(这样时错误的)
    

    常量

    常量就时不变的量。比方说,pi,3.1415926,在程序运行中不可以改变的量。

    • 一般,常量的定义所有字母大写
PI=3.14

Python中已经集成基本的数学函数和常量,我们查看一下pi的值:

>>> import math
>>> math.pi
3.141592653589793
>>>

dir()函数

dir(函数名)
  • 不带参数,返回当前范围内定义的变量,方法。和定义的类型列表。
  • 带参数,返回参数的属性和方法。
>>> dir() 显示我们当前环境下所有的变量名称。
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'keyword', 'math', 'tuple', 'x', 'y']
>>>
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
>>>

数字

  • 数字提供了标量存储和直接访问

  • 是不可更改的数据类型(指变更数字会生成新的对象)

    • 整形

    • 长整形

      ​ Python2区分长整形,Python3 目前已经基本不区分,后续优化会逐渐合并

    • 布尔型

      • True(1)
      • False(0)
    • 浮点型

      • 双精度浮点型

      • 十进制浮点型

        科学计数法

        用“E”或者“e”来代表10

        >>> print(3.14159E5)
        314159.0
        >>> print(314159.0e-5)
        3.14159
        >>>
        
    • 复数

      i**2=-1
      

      我们知道,任何一个数的平方都是一个非负数

      但现在,我们需要找到一个数的平方为负数,因此,18世纪,数学家定义虚数(虚数基本单位(i,j))

      i**2=-1,i**2=-1
      
      
      

KaTeX parse error: Can't use function '$' in math mode at position 9: i或者j=$̲\sqrt {{\rm{ - …

基于这个特殊的数(或者称之为概念),数学从此有了一个新的分支。现在虚数已经广泛应

用于数值和科学计算应用程序中。一个实数和一个虚数的组合构成一个复数。一个复数是一对

有序浮点数(x, y)。表示为 x + yj, 其中 x 是实数部分,y 是虚数部分。

渐渐的复数在日常运算,机械,电子等行业获得了广泛的应用。由于一些研究人员不断的重

复制造用于复数运算的工具, 在很久以前的 Python1.4 版本里,复数终于成为一个真正的

Python 数据类型。

  • 复数属性

    假如:定义num=1.6+5.6,则对应的常见属性

    属性为:

    • num.run 返回复数的实部
    • num.imag 返回复数的虚部
    • num.conjugate()返回复数的共轭复数
  • 共轭复数:实部相同,虚部互为相反数

    >>> num=1.6+5.6j 或者num=compex(1.6+5.6)
    >>> num
    (1.6+5.6j)
    >>> num.real
    1.6
    >>> num.imag
    5.6
    >>> num.conjugate()
    (1.6-5.6j)
    >>>
    

表达式与运算符

表达式

计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算。

Python算术运算符

运算符描述实例
+加 : 两个对象相加a + b
-减 :得到负数或是一个数减去另一个数a - b
*乘 : 两个数相乘或是返回一个被重复若干次的字符串a * b
/除 : x 除以 y,返回一个实数b / a
%取模 : 返回除法的余数b % a
**幂 : 返回x的y次幂a**b
//取整除 : 返回商a//b

Python比较运算符

以下假设变量a为10,变量b为20:

运算符描述实例
==等于 - 比较对象是否相等(a == b) 返回 False。
!=不等于 - 比较两个对象是否不相等(a != b) 返回 True。
>大于 - 返回x是否大于y(a > b) 返回 False。
<小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。(a < b) 返回 True。
>=大于等于 - 返回x是否大于等于y。(a >= b) 返回 False。
<=小于等于 - 返回x是否小于等于y。(a <= b) 返回 True。

Python赋值运算符

以下假设变量a为10,变量b为20:

运算符描述实例
=简单的赋值运算符c = a + b 将 a + b 的运算结果赋值为 c
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c **= a 等效于 c = c ** a
//=取整除赋值运算符c //= a 等效于 c = c // a

i++,i–,++i,–i ---->python不可以使用

Python位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

运算符描述
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
^按位异或运算符:当两对应的二进位相异时,结果为1
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
>>右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数

bin() 十进制强制转化成二进制

a =    0001 1111
b =    0000 1111
----------------
a&b =  0000 1111
a|b =  0001 1111
a^b =  0001 0000
~a =   1110 0000
a<<2 = 0111 1100
a>>2 = 0000 0111
>>> a = 31
>>> b = 15
>>> a & b
15
>>> a | b
31
>>> a ^ b
16
>>> ~a
-32
>>> a << 2
124
>>> a >> 2
7

a&b

位与

同时为1 就为1

&01
000
101

有1就为1

&01
000
101

^异

不同为1 同为0

^01
010
101

假的就是真的 取对立面

>>> a=7
>>> ~a
-8
>>>
运算符逻辑表达式描述
andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

针对于逻辑运算的进一步研究:

1.在没有0的情况下not优先级高于and,

and优先级高于or,即优先级为()>not>and>or,同一优先级从左至右计算。

Python成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

运算符描述实例
in如果在指定的序列中找到值返回 True,否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

Python身份运算符

身份运算符用于比较两个对象的存储单元

运算符描述实例
isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符描述
**指数 (最高优先级)
~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位 ‘AND’
^ |位运算符
<= < > >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符
3>4 or 4<3 and 1==1     #结果:false
1 < 2 and 3 < 4 or 1>2           
2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 > 8 
1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
false true true true true false false

数据类型的强制转换

强转类型描述
int(x)将x转换成一个整数
float(x)将x转换成浮点数
int(x [,base ])将x转换为一个整数
long(x [,base ])将x转换为一
float(x )将x转换到一个浮点数
complex(real [,imag ])创建一个复数
str(x )将对象 x 转换为字符串
repr(x )将对象 x 转换为表达式字符串
eval(str )用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s )将序列 s 转换为一个元组
list(s )将序列 s 转换为一个列表
chr(x )将一个整数转换为一个字符
unichr(x )将一个整数转换为Unicode字符
ord(x )将一个字符转换为它的整数值
hex(x )将一个整数转换为一个十六进制字符串
oct(x )将一个整数转换为一个八进制字符串
bin(x)将一个整数转换为一个二进制字符串

转换为Unicode字符大写A ——z 在chr() 65——92 小写a 是97

oct() 八进制

十进制二进制八进制十六进制
00000 00000000 00000000 0000
10000 00010000 00010000 0001
20000 00110000 00020000 0002
30000 00110000 00030000 0003
40000 01000000 00040000 0004
50000 01010000 00050000 0005
60000 01100000 00060000 0006
70000 01110000 00070000 0007
80000 10000000 00100000 0008
90000 10010000 00110000 0009
100000 10100000 00120000 000a
110000 10110000 00130000 000b
120000 11000000 00140000 000c
130000 11010000 00150000 000d
140000 11100000 00160000 000e
150000 11110000 00170000 000f
160001 00000000 00200000 0010

小技巧:当二进制转换成十六进制划分四位一组以二进制方式计算

转换成八进制的时候划分成三位一组以二进制方式计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值