day 03.运算符和字符串 2018-12-26

2018-12-26  本文已影响0人  绝世小丑

一、运算符

前期准备:

Python支持:数学运算符、比较运算符、逻辑运算符、赋值运算符、(位运算符)
注意:运算符的运算对象不一定是数据,也可以是存数据的变量
例如:

age = 50
print(age / 2)

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
25.0

Process finished with exit code 0


1.数学运算符:+(加)、-(减)、*(乘)、/(除)、//(整除)、%(取余)、**(幂运算)。

其中+、-、*、/与数学中的加减乘除一模一样。
例如:

print(55 + 15.)
print(654.5 - 650.5)
print(5 * 6)
print(9 / 2)

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
70.0
4.0
30
4.5

Process finished with exit code 0


//(整除):

数字1 // 数字2 -----数字1除以数字2,结果只取整数部分
例如:

print(11 // 2.5) 

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
4.0

Process finished with exit code 0

练习:取数字 854 上的百位数

例如:

print(856 // 100)

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
8

Process finished with exit code 0

%(取余)

例如:

print(11 % 3) 

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
2

Process finished with exit code 0

应用1:获取一个数的个位数
print(798 % 10) 

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
8

Process finished with exit code 0

应用2:判断一个数的奇偶(让数对2取余,结果为1是奇数,结果为0是偶数)
print(100 % 2, 51 % 2)

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
0 1

Process finished with exit code 0

**(幂运算):x ** y -----求x的y次方

例如:

print(3 ** 3)
print(25 ** 0.5)           # x ** (1/2) 为x的开平方;x ** (1/3) 为x的开立方

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
9
5

Process finished with exit code 0


2.比较运算符:

>(大于)、<(小于)、==(等于)、!=(不等于)、>=(大于等于)、<=(小于等于)
所有的比较运算符的运算结果都是布尔值
print(1 + 1 > 2) # 结果为false
print(1 + 1 < 2) # 结果为false
print(1 + 1 == 2) # 结果为true
print(1 + 1 != 2) # 结果为false
print(1 + 1 >= 2) # 结果为true
print(1 + 1 <= 2) # 结果为true
例如:

age = 10
print('年龄为::', age)
print('是否成年:', age >= 18)

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
年龄为:: 10
是否成年: False

Process finished with exit code 0

补充:is的使用:

一个变量有三要素,分别是:类型(变量中存储的数据类型)、值(变量存储的数据)、地址(变量真正存储的位置)
类型:用print(type(变量)),查看类型
值:使用变量就是使用值
地址:用print(id(变量)),查看地址

==:判断值是否相等
is:判断地址是否相等
name = '绝世小丑'
print(type(name), name, id(name))

注意:

list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = list1 # 用 = 赋值的时候,会把list1的值和地址赋给list3
print(id(list1), id(list3))

除了数字和字符串,用 = 赋值,均不会赋值地址

3.逻辑运算符::and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)

逻辑运算符的运算对象和运算结果都是布尔值

and:

值1 and 值2 -----如果两个值都为true,结果为true,否则为false;相当于生活中的“并且”
True and True --->True
True and False --->False
False and True --->False
False and False --->False

短路操作:

如果第一个条件为False,就不会再去判断第二个条件,会直接让整个与运算结果为False

应用:要求多个条件相同满足时,用逻辑 and 运算
练习:能拿奖学金的条件是成绩必须90分以上并且测评分不低于95

例如:

cj = 90
cp = 85
print('是否能拿奖学金:', cj > 90 and cp >= 95)

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
是否能拿奖学金: False

Process finished with exit code 0

or:

值1 and 值2 -----如果两个值都为false,结果为false,否则为true;相当于生活中的“或者”
True or True --->True
True or False --->True
False or True --->True
False or False --->False

短路操作:如果第一个条件为True,就不会再去判断第二个条件,会直接让整个或运算结果为True
应用:要求多个条件只要有一个满足时,用逻辑 or 运算
练习:如果考试成绩低于60或者没来听课
cj = 60
is_not_in_class = False     # true 表示不在班级;false表示在班级
print('是否降班:', cj < 60 or is_not_in_class)

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
是否降班: False

Process finished with exit code 0

not:

not 值 -----对值1进行否定(取反);相当于生活中的“或者”
not True -->False
not false -->True

应用:否定某个条件
年龄不小于10岁
age = 20
print(not age < 10)

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
True

Process finished with exit code 0


4.赋值运算符:=(等于)、+=(加等于)、-=、=、/=、//=、%=、*=

要求:

所有的赋值运算符左边必须是变量;右边必须是有结果的(是值)

变量 = 结果 -----将结果赋给变量

num1 = 1314
num2 = num1 # 变量给变量赋值,赋的是变量的地址

复合赋值运算符:

+=(加等于)、-=、=、/=、//=、%=、*=
复合赋值运算符要求赋值运算符号的左边除了是变量以外,还要求整改变量已经被赋过值
变量 += 数字 --> 变量 = 变量 + 数字
例如:

num3 = 10
num3 += 20               # -->num3 = num3 + 20
print(num3)              # 结果为30

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
30

Process finished with exit code 0

例如:

num3 = 10
num3 -= 20               # -->num3 = num3 - 20
print(num3)              # 结果为-10

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/01、运算符.py"
10

Process finished with exit code 0


5.运算符的优先级

注意:在运算时,布尔中,True = 1;False = 0
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
数学运算符中:'*' > '','/','%','//' > '=','-'
优先级高的先算,优先级低的后算。如果有(),先算()里的。



二、数字类型

1.int:

整型,包含所有的整数,支持二进制、八进制、十进制、十六进制。
例如:

num00 = 1314             # 十进制:默认为十进制
num01 = 0b10101010       # 二进制:0b+二进制数
num02 = 0o77777777       # 八进制:0o+八进制数
num03 = 0xfedcba98       # 十六进制:0x+十六进制数
print(num00, num01, num02, num03)       # 打印的是这个数的十进制
print('十进制是:', 1314, '二进制表示为:', bin(1314))
print('十进制是:', 1314, '八进制表示为:', oct(1314))
print('十进制是:', 1314, '十六进制表示为:', hex(1314))
print(0b10 + 5)   # 可以用不同进制进行运算

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/02、数字类型 12.26.py"
1314 170 16777215 4275878552
十进制是: 1314 二进制表示为: 0b10100100010
十进制是: 1314 八进制表示为: 0o2442
十进制是: 1314 十六进制表示为: 0x522
7

Process finished with exit code 0


2.float:

浮点型,包含所有的小数,支持科学计数法。
例如:

num1 = 123.5
num2 = 3e2             # 代表 3 乘以 10 的 2 次方
print(num2)
num3 = 1.32e2          # 代表 1.32 乘以 10 的 2 次方
print(num3)

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/02、数字类型 12.26.py"
300.0
132.0

Process finished with exit code 0


3.bool:

布尔, 值只有True(1) 和False(0)
True还是表示真、肯定
False还是表示假、否定


4.complex:

复数,实部 + 虚部j,注意:前面必须有数字,不能省略。


三、字符串

1.认识字符串

通过单引号或双引号括起来的字符集(文本)就是字符串
例如:

str1 = 'adc'
str2 = "adc321"

2.字符串类型(str)

str是Python自己提供的一种容器型数据类型,一个字符串中可以存储多个字符。
什么是字符:在python中,只有字符的概念,没有字符类型,如果在python中要表示一个字符,用一个长度为一的字符串来表示。
字符串不可变但是有序,不可变指的是字符的值和字符串的长度不可变,有序指的是每个字符在字符串中的位置是确定的
字符串'adc'和字符串'cda'是不一样的

3.字符串中的字符

普通字符:包含一般的字母、数字、符号、其它文字;例如:'a','D','1'
data = 'adc321哎?'
转义字符:通过在一些特定的字母前加\,来表示特殊的功能或者意义。
注意:没有阻止转译的时候,一个转译字符的长度为1。可以在字符串的最前面加r/R,来阻止转义。(阻止字符串中所有的转义字符转义)

例如:

data0 = '\t姓名:阿黄\n\t物种:狗\n\t年龄:18'
print(data0)            # 效果:姓名:阿黄
                        # 物种:狗
                        # 年龄:18
data0 = r'\t姓名:阿黄\n\t物种:狗\n\t年龄:18'
print(data0)            # 效果:\t姓名:阿黄\n\t物种:狗\n\t年龄:18
# \n -----换行符
data1 = 'adc\n321'
print(data1)            # 效果:adc
#                               321
# \' -----表示一个单引号
data2 = 'halo\'A'
print(data2)            # 效果:halo'A
# \" -----表示一个双引号
data2 = "halo\"A"
print(data2)            # 效果:halo"A
# \\ -----表示一个\
data3 = 'halo\\A'
print(data3)            # 效果:halo\A
# \t -----表示一个tab键
data4 = 'halo\tA'
print(data4)            # 效果:halo   A

# 编码字符:在字符串中用'\u'+ 四位十六进制编码值表示一个字符
data5 = 'halo\uabc1'
print(data5)            # 效果:haloꯁ

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/03、字符串 12.26.py"
    姓名:阿黄
    物种:狗
    年龄:18
\t姓名:阿黄\n\t物种:狗\n\t年龄:18
adc
321
halo'A
halo"A
halo\A
halo    A
haloꯁ

Process finished with exit code 0

4.字符编码

计算机在存储数据的时候,只能存储数字数据,而且存的是数字的二进制补码
十进制存二进制:10 --> 转换成二进制 --> 求补码 --> 存储
字符的编码就是为了将字符存储到计算机中,给每个字符对应的一个固定的数字。这个数字就是这个字符的编码。
目前计算机采用的编码方式有两种,分别是ASCII码表和Unicode码表。python中采用的是Unicode码表。
ASCII码:采用一个字节对字符进行编码(共有128个字符)
Unicode码:包含ASCII码,采用两个字节对字符进行编码,包含了世界上所有的语言和符号,又称万国语。
小写字母的编码范围:(az):87122
大写字母的编码范围:(AZ):6990
中文的编码范围:0x4e00~ox9fa5

字符编码相关的函数:

chr()编码值 -----获取编码对应的字符
例如:

print(chr(0xa00f))

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/03、字符串 12.26.py"
ꀏ

Process finished with exit code 0

ord(字符) -----获取字符的编码(以十进制的形式返回)
例如:

print(ord('绝'), ord('世'))         # 只能是单个字符

运行结果:

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/Administrator/PycharmProjects/untitled1/day3、运算符和字符串 12..26/03、字符串 12.26.py"
32477 19990

Process finished with exit code 0


上一篇下一篇

猜你喜欢

热点阅读