第二部分-Python变量类型和运算符

第二部分-Python变量类型和运算符

Python 使用等号(=)作为赋值运算符,例如 a = 20 就是一条赋值语句,这条语句用于将 20 装入变量 a 中,这个过程就被称为赋值,即将 20 赋值给变量 a。

和强类型语言相对应的是弱类型语言,Python 就是典型代表之一。弱类型语言有以下 2 个特征:
1. 变量无须声明即可直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。
2. 变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为字符串。

Python数值类型(整形、浮点型和复数)及其用法

Python整型

不管是 Python 3.x 还是 Python 2.x,Python 完全可以正常处理很大的整数

Python 的整型数值有 4 种表示形式:
1. 十进制形式:最普通的整数就是十进制形式的整数,在使用十进制表示整数值时,不能以 0(零)作为十进制数的开头(数值是 0 除外)。
2. 二进制形式:由 0 和 1 组成,以 0b 或 0B 开头。例如,101 对应十进制数是 5;
3. 八进制形式:八进制整数由 0~7 组成,以 0o 或 0O 开头(第一个字母是零,第二个字母是大写或小写的 O)。需要注意的是,在 Python 2.x 中,八进制数值还可以直接以 0(零)开头。
4. 十六进制形式:由 0~9 以及 A~F(或 a~f)组成,以 0x 或 0X 开头。

为了提高数值(包括浮点型)的可读性,Python 3.x 允许为数值(包括浮点型)增加下画线作为分隔符。这些下画线并不会影响数值本身。

Python浮点型

浮点型数值用于保存带小数点的数值,Python 的浮点数有两种表示形式:
十进制形式:这种形式就是平常简单的浮点数,例如 5.12、512.0、0.512。浮点数必须包含一个小数点,否则会被当成整数类型处理。
科学计数形式:例如 5.12e2(即 5.12×102)、5.12E2(也是 5.12 ×102)。

必须指出的是,只有浮点型数值才可以使用科学计数形式表示。例如 51200 是一个整型值,但 512E2 则是浮点型值。

注意,使用浮点数进行计算时,可能会出现小数位数不确定的情况,比如说,计算 0.1+0.2,本来应该得到 0.3,但经过测试你会发现,Python解释器的运行结果为 0.30000000000000004。几乎所有编程语言都存在这个问题,这与浮点数在底层的存储方式有关系,初学者不必深究。

Python复数

Python字符串详解(包含长字符串和原始字符串)

由于字符串中的反斜线都有特殊的作用,因此当字符串中包含反斜线时,就需要使用转义字符 \ 对字符串中包含的每个 '\' 进行转义。

Python bytes类型及用法

bytes 和 str 除操作的数据单元不同之外,它们支持的所有方法都基本相同,bytes 也是不可变序列。
bytes 对象只负责以字节(二进制格式)序列来记录数据,至于这些数据到底表示什么内容,完全由程序决定。如果采用合适的字符集,字符串可以转换成字节串;反过来,字节串也可以恢复成对应的字符串。
由于 bytes 保存的就是原始的字节(二进制格式)数据,因此 bytes 对象可用于在网络上传输数据,也可用于存储各种二进制格式的文件,比如图片、音乐等文件。

将一个字符串转换成 bytes 对象,有如下三种方式:
1. 如果字符串内容都是 ASCII 字符,则可以通过直接在字符串之前添加 b 来构建字节串值。
2. 调用 bytes() 函数(其实是 bytes 的构造方法)将字符串按指定字符集转换成字节串,如果不指定字符集,默认使用 UTF-8 字符集。
3. 调用字符串本身的 encode() 方法将字符串按指定字符集转换成字节串,如果不指定字符集,默认使用 UTF-8 字符集。

# 创建一个空的bytes
b1 = bytes()
# 创建一个空的bytes值
b2 = b''
# 通过b前缀指定hello是bytes类型的值
b3 = b'hello'
print(b3)
print(b3[0])
print(b3[2:4])

# 调用bytes方法将字符串转成bytes对象

b4 = bytes('我爱Python编程', encoding='utf-8')
print(b4)

# 利用字符串的encode()方法编码成bytes,默认使用utf-8字符集

b5 = "学习Python很有趣".encode('utf-8')
print(b5)
#将bytes 对象解码成字符串,默认使用UTF-8进行解码
st = b5.decode('utf-8')
print(st)  #学习Python很有趣

Python bool布尔类型

True 和 False 是 Python 中的关键字,当作为 Python 代码输入时,一定要注意字母的大小写,否则解释器会报错

Python len()函数详解

获取字符串长度或字节数

str1 = "我是王建雄,我在学习python"
print(len(str1.encode())) # 3 * 10 + 6
print(len(str1.encode('gbk'))) # 2 * 10 + 6

Python input()函数

获取用户输入的字符串

hh = input("请输入信息:")
print("您输入的信息类型是:%s" % type(hh))
print("您输入的信息是: %s " % hh)

注: Python 2.x 提供了一个 raw_input() 函数,该 raw_input() 函数就相当于 Python 3.x 中的 input() 函数。
而 Python 2.x 也提供了一个 input() 函数,Python 2.x 的 input() 函数要求用户输入字符串时必须用引号把字符串括起来。

Python print()函数高级用法

print() 函数的详细语法格式如下:
print (value,...,sep='',end='\n',file=sys.stdout,flush=False)

value :这个是要输出的值,后面的‘...’就表示可以放进去很多个值,只的数量不定
sep=' ' :这个参数是指键输出的值利用这个参数链接一起,默认的是空格,当然也可以设置为其他的链接符号。
end=' ' :这个参数是指在输出结束的时候以这个字符结束,默认为'\n',也就是换行符。这个在实现不换行输出时还是有用的。
file=' ' :参数的默认值为 sys.stdout,该默认值代表了系统标准输出,也就是屏幕
flush='' : 参数用于控制输出缓存,该参数一般保持为 False 即可,这样可以获得较好的性能

Python格式化字符串(格式化输出)

%d,%i    转换为带符号的十进制形式的整数
%o    转换为带符号的八进制形式的整数
%x,%X    转换为带符号的十六进制形式的整数
%e    转化为科学计数法表示的浮点数(e 小写)
%E    转化为科学计数法表示的浮点数(E 大写)
%f,%F    转化为十进制形式的浮点数
%g    智能选择使用 %f 或 %e 格式
%G    智能选择使用 %F 或 %E 格式
%c    格式化字符及其 ASCII 码
%r    使用 repr() 将变量或表达式转换为字符串
%s    使用 str() 将变量或表达式转换为字符串

 

# 指定了字符串的最小宽度为1-6,因此程序转换数值时总宽度为 1-6,程序自动在数值前面补充了三个空格,所以前三个间隔一样
num = -28
print("num is: %1i" % num)
print("num is: %2d" % num)
print("num is: %3o" % num)
print("num is: %4x" % num)
print("num is: %5X" % num)
print("num is: %6s" % num)

对于转换浮点数,Python 还允许指定小数点后的数字位数:如果转换的是字符串,Python 允许指定转换后的字符串的最大字符数。这个标志被称为精度值,该精度值被放在最小宽度之后,中间用点 () 隔开。

my_value = 3.001415926535
# 最小宽度为8,小数点后保留3位
print("my_value is: %8.3f" % my_value)
# 最小宽度为8,小数点后保留3位,左边补0
print("my_value is: %08.3f" % my_value)
# 最小宽度为8,小数点后保留3位,左边补0,始终带符号
print("my_value is: %+08.3f" % my_value)
the_name = "Charlie"
# 只保留3个字符
print("the name is: %.3s" % the_name) # 输出Cha
# 只保留2个字符,最小宽度10
print("the name is: %10.2s" % the_name)

Python转义字符及用法

\     在行尾的续行符,即一行未完,转到下一行继续写
\'    单引号
\"    双引号
\0    空
\n    换行符
\r    回车符
\t    水平制表符,用于横向跳到下一制表位
\a    响铃
\b    退格(Backspace)
\\    反斜线
\0dd    八进制数,dd 代表字符,如 \012 代表换行
\xhh    十六进制数,hh 代表字符,如 \x0a 代表换行
s = 'Hello\nCharlie\nGood\nMorning'
print(s)

s2 = '商品名\t\t\t单价\t\t\t数量\t\t总价'
s3 = 'C语言小白变怪兽\t99\t\t\t\t2\t\t\t198'
print(s2)
print (s3)

Python类型转换,Python数据类型转换函数大全

int(x) 将 x 转换成整数类型
float(x) 将 x 转换成浮点数类型
complex(real,[,imag]) 创建一个复数
str(x) 将 x 转换为字符串
repr(x) 将 x 转换为表达式字符串
eval(str) 计算在字符串中的有效 Python 表达式,并返回一个对象
chr(x) 将整数 x 转换为一个字符
ord(x) 将一个字符 x 转换为它对应的整数值
hex(x) 将一个整数 x 转换为一个十六进制字符串
oct(x) 将一个整数 x 转换为一个八进制的字符串

Python算术运算符及用法详解

+    加    12.45 + 15    27.45
-    减    4.56 - 0.26    4.3
*    乘    5 * 3.6    18.0
/    除    7 / 2    3.5
%    取余,即返回除法的余数    7 % 2    1
//    整除,返回商的整数部分    7 // 2    3
**    幂,即返回 x 的 y 次方    2 ** 4    16

 Python赋值运算符(入门必读)

=    最基本的赋值运算    x = y    x = y
+=    加赋值    x += y    x = x + y
-=    减赋值    x -= y    x = x - y
*=    乘赋值    x *= y    x = x * y
/=    除赋值    x /= y    x = x / y
%=    取余数赋值    x %= y    x = x % y
**=    幂赋值    x **= y    x = x ** y
//=    取整数赋值    x //= y    x = x // y
|=    按位或赋值    x |= y    x = x | y
^=    按位与赋值    x ^= y    x = x ^ y
<<=    左移赋值    x <<= y    x = x << y,这里的 y 指的是左移的位数
>>=    右移赋值    x >>= y    x = x >> y,这里的 y 指的是右移的位数

Python比较运算符(关系运算符)

> 大于,如果运算符前面的值大于后面的值,则返回 True;否则返回 False
>= 大于或等于,如果运算符前面的值大于或等于后面的值,则返回 True;否则返回 False
< 小于,如果运算符前面的值小于后面的值,则返回 True;否则返回 False
<= 小于或等于,如果运算符前面的值小于或等于后面的值,则返回 True;否则返回 False
== 等于,如果运算符前面的值等于后面的值,则返回 True;否则返回 False
!= 不等于,如果运算符前面的值不等于后面的值,则返回 True;否则返回 False
is 判断两个变量所引用的对象是否相同,如果相同则返回 True
is not 判断两个变量所引用的对象是否不相同,如果不相同则返回 True

注:
== 用来比较两个变量的值是否相等,而 is 则用来比对两个变量引用的是否是同一个对象

import time
# 获取当前时间
a = time.gmtime()
b =  time.gmtime()
print(a == b) # a和b两个时间相等,输出True
print(a is b) # a和b不是同一个对象,输出False

Python逻辑运算符及其用法

and 逻辑与(简称“与”) a and b 有 2 个操作数 a 和 b,只有它们都是 True 时,才返回 True,否则返回 False。
or 逻辑或(简称“或”) a or b 有 2 个操作数 a 和 b ,只有它们都是 False 时,才返回 False,否则返回 True。
not 逻辑非(简称“非”) not a 只需要 1 个操作数 a,如果 a 的值为 True,则返回 False;反之,如果 a 的值为 False,则返回 True

bookName = "C语言中文网Python"
price = 99
version = "正式版"
if bookName.endswith('Python') and (price < 50 or version == "正式版") :
    print("打算购买这套Python教程")
else:
    print("不购买!")

注:

对于组合逻辑来说,使用圆括号保证运算顺序非常重要。

三目运算符的 if 语句的语法格式

True_statements if expression else False_statements

 

Python 允许在三目运算符的 True_statements 或 False_statements 中放置多条语句。Python 主要支持以下两种放置方式:
1. 多条语句以英文逗号隔开:每条语句都会执行,程序返回多条语句的返回值组成的元组。
2. 多条语句以英文分号隔开:每条语句都会执行,程序只返回第一条语句的返回值。

 

a = 5
b = 3
st = "a大于b" if a > b else  "a不大于b"
# 输出"a大于b"
print(st)

st = print("crazyit"), 'a大于b' if a > b else  "a不大于b"
print(st)

c = 5
d = 5
# 下面将输出c等于d
print("c大于d") if c > d else (print("c小于d") if c < d else print("c等于d"))

 Python运算符优先级一览表

运算符说明     Python运算符                              优先级
索引运算符     x[index] 或 x[index:index2[:index3]]     18、19
属性访问       x.attrbute                                 17
乘方          **                                         16
按位取反       ~                                          15
符号运算符     +(正号)或 -(负号)                         14
乘、除        *、/、//、%                                 13
加、减        +、-                                       12
位移          >>、<<                                     11
按位与        &                                          10
按位异或      ^                                           9
按位或        |                                          8
比较运算符     ==、!=、>、>=、<、<=                         7
is 运算符     isis not                                  6
in 运算符     innot in                                  5
逻辑非        not                                         4
逻辑与        and                                         3
逻辑或        or                                          2

注:

Python 运算符存在优先级的关系,但并不推荐过度依赖运算符的优先级,因为这会导致程序的可读性降低。因此,在这里要提醒读者:
1. 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。
2. 不要过多地依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用“()”来控制表达式的执行顺序。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-07-03 14:42  黑客之世界  阅读(418)  评论(0编辑  收藏  举报