Python学习笔记(2-1):基础知识之数据类型、定义变量与运算符

本文详细介绍了Python的基础知识,包括数据类型(数值型、布尔型、字符串型、进制数据和复数)、变量的定义与标识符限制、以及运算符(算数、比较、逻辑、位运算、赋值)的使用。通过实例展示了如何定义和操作变量,以及如何转换和表示不同进制的数据。此外,还讨论了复数的定义及其属性。
摘要由CSDN通过智能技术生成

在这里插入图片描述

文章导读

 - 课程难度:★★☆☆☆
 - 预计学习时间:1小时
 - 简介:本节讲解了学习Python的必备基础知识:(1)数据类型:包括三种基础数据类型(数值型、布尔型和字符串型),和两个相对特例的数据类型
(二、八、十六进制数据和复数);(2)如何定义变量以及标识符的限制条件;(3)常用运算符和字符的介绍与使用方法。
 - 重点涉及的函数和内容:(1) type()函数查看数据类型;(2) 分别利用函数bin()、oct()、hex()将十进制数据用二进制、八进制、十六进制数据表示;
(3) complex()函数定义复数;(4) 各种运算符和字符;(5) 赋值与运算符的结合。

一、 数据类型

1、 基础数据类型

Python有多种数据类型,日常使用的主要包括三类,分别为数值型、布尔型和字符串型。

(1)数值型

数值型数据,常用的包括整型和浮点型。浮点型的整数可以通过在整数后面追加小数点进行定义。此外,还可以用科学计数法的数值表示形式,e后面数字代表10的次方数。几种形式数值的定义如下:

print(1)
print(1.0)
print(1.)
print(2.7e4)

(2) 布尔型

布尔变量也称逻辑变量,包括TrueFalse。True和False在数值表示下分别是0和1

print(True)
print(False)

(3 )字符串型

字符串里,用单引号' '或者双引号" "括起来都是可以的

print('Hello World - 1')
print("Hello World - 2")

除了上述基本类型之外,还有一个重要的类型,即空类型,其值是None,我们会在第6章中综合描述各种“空值”,在此不做过多讲解。
另外,我们可以利用 type() 函数,查看一个值或变量的数据类型:

print(type(1.0))

输出结果如下:

<class 'float'>

这些数值之间可以进行格式转换,其方法涉及到了函数的应用,我们将在本章函数部分讲解完后,将格式转换函数作为函数讲解的例子,来介绍各个数据类型间格式转换的方法。

2、 各种进制的数据

整型数据有四种进制表示,分别为:二进制、八进制、十进制、十六进制,说明如下表所示。我们一般的数据输出都是以十进制表示的,但是为了一些运算的方便,有时我们需要将之改成其他进制的。

种类描述引导符
二进制由 0 和 1 组成0b 或 0B
八进制由 0 和 7 组成0o 或 0O
十进制默认情况
十六进制由 0 到 9、a 到 f、A 到 F 组成,不区分大小写0x 或 0X

(1) 初始化

对于二进制、八进制、十六进制的数据的初始化,可以分别在数据之前加0b0o0x,表示后面的数据分别是二、八、十六进制的形式。
但是,初始化数据的结果、各类进制数据参与计算的运算结果都是以十进制表示。例如我们分别初始化一个二进制、八进制和十六进制的数据并求和:

print(0b1011, 0o12, 0x29)
print(0b1011 + 0o12 + 0x29)

输出结果如下:

11 10 41
62

(2) 用二进制、八进制和十六进制表示十进制数据

将十进制数据以二进制、八进制、十六进制表示,我们可以分别用bin()oct()hex()函数,但转换出来的结果是一个字符串,所以另有一种方式是利用字符串格式化的函数format()进行处理:

print(bin(20))
print(oct(20))
print(hex(20))
print(format(20, '#b'))
print(format(20, '#o'))
print(format(20, '#x'))

输出结果如下:

0b10100
0o24
0x14
0b10100
0o24
0x14

3、 复数

(1) 定义

在python中,我们以“a + bj”的形式定义一个复数,手工定义一个复数最好用括号将实部和虚部括起来。或者,可以用complex()函数定义一个复数,即可以传递实部和虚部的数值,也可以传递一个表示复数的字符串(这个字符串除了头尾外不要有空格):

print(2 + 3j)
print(complex(2, 3))
print(complex('2+3j'))

上述三个表达式都输出了虚数2+3j,输出结果如下:

(2+3j)
(2+3j)
(2+3j)

(2) 属性: .real和.imag

对于虚数的实部和虚部,可以用.real.imag属性分别进行访问:

print((2 + 3j).real)        	#取复数x的实部
print((2 + 3j).imag)        	#取复数x的虚部

输出结果如下:

2.0
3.0

二、 变量的定义与标识符

1、 定义变量

定义变量是用一个固定的名称指示一个可变值的过程。定义变量用等于号=表示,定义一个变量的过程例如:

a = 1
b = 25
print(a)
print(b)

名称为a的变量的当前值为1,名称为b的变量的当前值为25
输出结果如下:

1
25

这里的a, b叫做标识符。我们定义变量以及后面的函数等,都是通过标识符指示待定义对象的名称。

2、 标识符名称的限制

需注意,标识符的名称有如下限制:

  • 由字母、数字和下划线“_”构成
  • 开头不能是数字
  • 不能是保留字符。在这里看上去不是不能定义,只是这样原方法会覆盖,所以十分不建议,保留字符包括如下表格中所列的内容:
andexecnotassertfinallyor
breakforpassclassfromprint
continueglobalraisedefifreturn
delimporttryelifinwhile
elseiswithexceptlambdayield

3、 定义变量的特性

根据上面的一些描述,以及与其他编程语言进行对比,我们需要记住如下特性:

  • 变量赋值用符号 = ,需要强调这个叫做“赋值”,而不是“等于”
  • 变量赋值不需要定义数据类型
  • 变量a的值可以被重新定义,定义后会被替换成新的值
a = 3
a = 'hello'
print(a)

输出结果如下:

Hello
  • 变量a可以用其他变量(而不只是常量)定义
b = 24
a = b
print(a)

输出结果如下:

24
  • 变量a的值可以用一个计算式子定义
a = 3 + 4 + 5
print(a)
b = 24
a = 3 + b
print(a)

输出结果如下:

12
27
  • 变量a可以被自己定义
a = 20
a = a + 1
print(a)

输出结果如下:

21
  • 多变量的同时赋值:将变量和赋予的值分别通过逗号分隔,通过一个等号便可一一对应地赋值
a1, a2, a3, a4 = 1, 2, 3, 4
print(a1, a2, a3, a4)

输出结果如下:

1 2 3 4

这时,a1、a2、a3、a4分别被赋值成为了1、2、3、4,即我们通过这样一个语句完成了四次赋值。但是请注意,它不支持如下的做法:

a1 = 1, a2 = 2, a3 = 3

通过这个特性,我们在python的运用中常常利用如下取巧的操作:

x, y = 2, 3
x, y = y, x
print(x, y)

输出结果如下:

3 2

这样就直接完成了x、y的交换,而不用写成一般语言中交换两个元素中常用的:

temp = x
x = y
y = temp

综合以上特性来看,这个等号=的含义可以描述成:先计算右边的值,然后把右边的值赋给左边的变量。

三、 运算符和字符

运算符是接收变量并进行一些运算的符号,而这里描述的字符指的是例如圆括号()、方括号[]等用于构建代码语句的符号。常用运算符和字符的汇总如下:

运算符描述
算数运算符 +、-、*、/ 、//、**、%加、减、乘、除、整除、乘方、余数
比较运算符==、!=、>、>=、<、<=等于、不等于、大于、大于等于、小于、小于等于
逻辑运算符 and、or、not、xor与、或、非、异或
位运算符&、|、~ 、^与、或、非、异或
赋值运算符=用于变量赋值
字符描述
圆括号()运算、函数的定义与调用、定义元组(tuple)
方括号[]定义列表和访问各种数据结构的元素
花括号{}定义字典
e科学计数法下的数据标记
单引号、双引号 ''""标注字符串,使用时都只在本行起效果
三引号''' '''标注字符串,允许跨行
井号 #标注注释行,该行之后的数据全部为注释,解释器不对其进行解释
转义字符 \\t\n换行、制表位、换行符
\\斜杠

1、 算数运算符

常用的算术运算符包括:基本的加减乘除四则运算符 +-*/,和整数除法、乘方、余数的运算符号 //**%。使用示例如下所示:

print(1 + 2)
print(+ 2)
print(3 - 2)
print(- 2)
print(4 * 4)
print(6 / 2)
print(7 / 2)

print(7 // 2)
print(4 ** 2)
print(13 % 4)

输出结果如下:

3
2
1
-2
16
3.0
3.5

3
16
1

补充及注意:

  • 两个整数执行乘法后结果的数据类型仍然是整数,但无论两个数是不是整除、以及原来的数字是不是整数,执行除法之后结果的数据类型都会变成浮点数
  • 乘方是**,而不是^^是"按位异或"的运算符

2、 比较运算符

比较运算包括等于、不等于、大于、大于等于、小于、小于等于等数个,对应的符号分别是==!=>>=<<=。这些符号和我们在计算机上的一般符号表示相同。这里建立几个简单的例子用来展示效果:

a, b = 1, 2
print(a > b)
print(a < b)
print(a >= b)
print(a <= b)
print(a == b)
print(a != b)

输出结果如下:

False
True
False
True
False
True

3、 逻辑运算与位运算符

逻辑运算包括与、或、非和异或运算,对应的符号分别是&|~^。逻辑型变量有两个值,TrueFalse。逻辑运算其实也就是我们所谓的与或非运算中,我们可以用andornot连接各个表达式,andor分别可以用 &|代替。但not没有!这种“非”含义的运算符,有一个近似的是位运算的按位取反的运算符。同时,还有一种重要的运算叫做异或(xor, ^),即二者真值不同时为True
具体使用示例如下:

a, b, c, d = True, True, False, False
a_bin, b_bin = 0b10100, 0b01101

print('and:', a and b, a & b)
print('and:', a and c, a & c)
print('or:', a or c, a | c)
print('or:', c or d, c | d)
print('not:', not a, ~a)
print('not:', not c, ~c)
print('xor:', a^b, a^c)

输出结果如下:

and: True True
and: False False
or: True True
or: False False
not: False -2
not: True -1
xor: False True

与此同时,与、或、非、异或都在位运算中发挥作用:

print(bin(a_bin & b_bin))
print(bin(a_bin | b_bin))
print(bin(~a_bin))
print(bin(a_bin ^ b_bin))

输出结果如下:

0b100
0b11101
-0b10101
0b11001

4、 赋值与运算符的结合

这里把运算符和字符组合起来,具体示例如下:

a = 4
a += 5		# a = a + 5 
print(a)

b = 2
b **= 3		# b = b ** 3
print(b)

输出结果如下:

9
8

这里需注意,python中没有类似++这种自加1的运算

5、 转义字符

反斜杠 \, 表示转义字符,注意\t\n\\分别是制表位、换行符和斜杠。同时,反斜杠\在代码编写时表示代码的换行。具体示例如下:

a = '1999,\\2000'
b = '1999,\t2000'
c = '1999,\n2000'
print(a)
print(b)
print(c)

输出结果如下:

1999,\Tuesday
1999,	Tuesday
1999,
Tuesday

对于掺杂了反斜杠\的字符串,有一个屏蔽掉其转义功能、输出原始文本的办法,这就是在字符串前加一个r。例如我们将刚刚的a、b、c的字符串前面分别加一个字母r

a = r'1999,\\2000'
b = r'1999,\t2000'
c = r'1999,\n2000'
print(a)
print(b)
print(c)

输出结果如下,反斜杠在输出是没有被作为转义字符:

1999,\\2000
1999,\t2000
1999,\n2000

与此同时,如果反斜杠出现在代码的最后,表示表示一行没写完,紧接着执行下一行(续行符号)。例如下面这个式子,实际上计算了1+2+3+4+5+6的和,这个功能在我们写很长的语句时很有用:

1 + 2 + 3 + 4 + \
5 + 6

输出结果如下:

21

如上,是对各种常用运算符和字符的讲解。


对于缺乏Python基础的同仁,可以通过免费专栏🔥《Python学习笔记(基础)》从零开始学习Python

结语

请始终相信“Done is better than perfect” ,不要过分追求完美,即刻行动就是最好的开始, 一个模块一个模块地积累和练习,必将有所收获。
还有其他的问题欢迎在评论区留言📝!


[版权申明] 非商业目的注明出处可自由转载,转载请标明出处!!!
博客:butterfly_701c

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值