Day3
一、运算符
python 支持:数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算符
1. 数学运算符:+加、-减、* 乘、/除、//整除、%取余、**幂运算
print(1+1,2-2,3*3,9/2,9//2,9%2,2**5)
#2 0 9 4.5 4 1 32
将234中各个数字提取出来
print("百位数:",234//100)
print("十位数:",234//10%10)
print("个位数:",234%10)
# 百位数: 2
# 十位数: 3
# 个位数: 4
判断奇偶性,0偶1奇
x = 10
print(x % 2)
#0
幂运算
print(16 ** (1/2),2**4)
#4.0 16
运算符的对象不一定是数据。
q = 1
w = 2
print(q+w+1)
#4
2. 比较运算符,>,<,>=,<=,==,!=
print(1>2,2<3,33>20,33>=20,1==2,2!=1)
#False True True True False True
#结果全是bool类型
一个变量有三要素,分别是:类型(变量中存储的数据类型),值(变量存储的数据),地址(数据的地址)
类型 = type(变量)
值 - 直接使用变量,就是使用值
is 和 == 的区别:
== 判断值是否相等,is判断地址是否相等
num = 100
print("类型:",type(num))
print("值:",num)
print("地址:",id(num))
#类型: <class 'int'>
#值: 100
#地址: 1662376544
a = num # 原变量赋值给新变量,是将原变量的地址赋给新变量
b = 100
print(id(a),id(num),id(b))
#1662376544 1662376544 1662376544
3. 逻辑运算符,and(与)、or(或)、not(非),运算对象和运算结果都是bool类型
and :同真为真,有假必假;or:一真为真,同假为假
x = False
y = True
print(x and y,y and y,x or x ,x and x)
#False True False False
短路操作
与:判断出第一个条件Flase,后面就不会判断;
或:判断出第一个条件Ture,后面就不会判断;
not 对值取反
x = False
print (not x)
#True
4. 赋值运算符。=,-=,+=,=,/=,//+,%=,,*=
赋值运算符,左边必为变量,右边必为值;除“= ”外,其余赋值运算符左边变量必须有值
q += 1
print(q)
#2
5.运算符的优先级
数学运算符>比较运算符>逻辑运算符>赋值运算符
优先级高的先算,优先级低的先算,有括号先算括号,同级别的从左往右算
二、数字类型:int,float,bool,complex
1.整型(int):包含所有的整数,支持二(0b)、八(0o)、十六(0x)进制
print('十进制:',123)
print('二进制:',bin(123))
print('八进制:',oct(123))
print('十六进制:',hex(123))
#十进制: 123
#二进制: 0b1111011
#八进制: 0o173
#十六进制: 0x7b
2.浮点型(float):包含所有的小数,支持科学计数法
print(2.0e3)
#2000.0
3.布尔类型(bool)
布尔类型也可算数字
print('True的值:',True + 0 , 'False的值:',False + 0)
#True的值: 1 False的值: 0
4. 复数(complex),实数+虚部j。虚部必须有数字。
print(10+1j,type(10+1j))
#(10+1j) <class 'complex'>
三、字符串
- 认识字符串
通过单引号或双引号包起来的文本(字符集)就是字符串。
str1 = 'asd12./.,.,/.321414-==0'
print(str1)
#asd12./.,.,/.321414-==0
2. 字符串类型(str)
str是Python自己提供的一种容器型数据类型,一个字符串可以存储多个字符。
Python中只有字符的概率没有字符的类型。
如果python中要表示一个字符,用一个长度是1的字符串表示
字符串内容和长度不变,但是有序,每个字符的位置是确定的。
空串:'',""。引号里面什么都没有。
空格字符串:' '," "。引号里面只有空格。
3.字符串中的字符
a. 普通字符:包含一般的字母、数字、符号、其他文字
b. 转义字符:在一些特定的字符前加\,来表示特殊的功能或者意义。
例如:\n 表示换行,\可防止转义 \n 就表示\n,\t表示一个TAB距离
没有阻止转义的时候,一个转义字符的长度是1。
可以在字符串的最前面加r或R来阻止转义
c. 编码字符:在字符串中用一个'\u1234',1234表示四位十六进制编码
str1 = 'I\'m\n下一行'
print(str1)
str1 = R'I\'m\n下一行'
print(str1)
print('\u4dc0')
print(r'\u4dc0')
#I'm
#下一行
#I\'m\下一行
#䷀
\u4dc0
倒数第二个可能是网站编码没得那个字
- 字符编码
计算机在存储数据的时候只能存数字数据,而且存的是数字的二进制补码
例如:10->>转换成二进制->>求补码(存)
为了将字符存储到计算机中,给每个字符对用的一个固定的数字,这个数字就是字符编码。
目前计算机采用的编码方式有两种,分别是ASCII和Unicode。
Python采用的是Unicode的编码
ASCII采用一个字节对字符进行编码,共128个字符。Unicode采用两个字节对字符编码,共65536个字符
小写字母的编码范围(a-z),97-122
大写字母的编码范围(A-Z),65-90
中文编码范围:0x4e00 - 0x9fa5
字符编码相关的函数:
a. chr(编码值) - 获取对应的字符
b. ord(字符) - 获取字符的编码(返回的是十进制)
作业
下面定义变量正确的是(ad)
a. a = b = c = 10
b. a,c = 10
c. in = 20
d. num = 10; t = 20n = 6784,以下能够获取到7 的方法有(cd)
a. n / 1000 % 100
b. n % 1000 / 100
c. n // 100 % 10
d. n // 10 % 100 // 10
9.以下表达式 10 / 4 + 23 // 4 * 2 - 30的计算结果是:-17.5。
- 写代码获取输入数字12345中的每一位上的数字
num = 12345
a = num % 10
b = num % 100 //10
c = num % 1000 //100
d = num % 10000 //1000
e = num % 100000 //10000
#print(e,d,c,b,a)
- 写出判断一个数是否能同时被3和7整除的条件语句
print(x % 3 == 0 and x % 7 == 0)
或者
print(x % 21 == 0)
- 写出判断一个数是否能够被3或者7整除,但是不能同时被3和7整除的表达式
print((x % 3 == 0 or x % 7 == 0 )and x % 21 !=0 )
- 今天上课讲了1500秒的课,编程计算今天上课时间是多少小时,多少分钟,多少秒
print(y//3600 ,'小时',y % 3600 // 60 ,'分钟',y % 3600 % 60,'秒')
- 定义两个变量保存一个人的身高和体重,编程实现判断这个人的身材是否完美!公式:体重(kg)除以身高(m)的平方的值在18.5~24.9之间属于正常(输出True)
m = 1.65
kg = 60
print (18.5 <= kg/m**2 <= 24.9)