Day3|Day3 运算符、数字类型、字符串

一、运算符 python 支持:数学运算符、比较运算符、逻辑运算符、赋值运算符、(位运算符)
1.数学运算符: 【Day3|Day3 运算符、数字类型、字符串】"+ "(加),"-"(减) ," * "(乘), /(除),//(整除),%(取余), " ** "(幂运算),
a. 其中 + 、-、*、/ 和数学中的加减乘除一模一样

print(10 + 20) print(12.6 + 5) print(100 - 110) print(2 * 3) print(5 / 2)

b. // (整除),数字1 //数字2 --> 数字1除以 数字2,结果只取整数部分
print(5 // 2)# 2 print(6.3 // 3)# 2.0

  • 练习,获取234中百位上的数 2
    print(234 // 100)
c. 取余:求余数
print(5 % 2)# 求五除以二的余数 print(10 % 4)

  • 应用一:获取一个数的个位数
    print(234 % 10) # 4
  • 应用二:判断一个数的奇偶性,让这个对2取余,然后看结果是0(偶数)还是1(奇数)
d. **(幂运算),x ** y --->运算符的 x 的 y 次方
print(2 ** 3) print(10 ** 4) print(16 ** 0.5)# x ** 0.5 == x ** (1/2)==x开平方 print(8 ** (1/3)) age = 18 print(age + 10)# 注意 :运算符的运算对象不一定非是数据,也可以是存数据的变量

2. 比较运算符 比较运算符:>, < ,==, !=,>= ,<=
  • 所有的比较运算符的结果都是布尔值
print(10 > 20) print(10 < 20) print(10 == 20) print(10 == 10) print(10 != 10) print(10 >= 10) print(10 <= 20) age = 18 print(age >= 18)

  • 补充:is的使用
    变量三要素:类型(变量中存储的数据的类型),值(变量中存储的数据),地址(变量中真正存储的内容:数据的地址)
    类型- type(变量)
    值 - 直接使用变量,就是使用值
    地址 - id(变量)
num = 100 print(type(num), num, id(num))

运行效果:

Day3|Day3 运算符、数字类型、字符串
文章图片
运行效果
==判定的是值是否相等,is判定的地址是否相等
list1 = [1, 2] list2 = [1, 2] list3 = list1 print(list1, list2) print(id(list1), id(list2)) print(list == list, list1 is list2) print(list1 == list3, list1 is list3)

运行效果:

Day3|Day3 运算符、数字类型、字符串
文章图片
运行效果
  • 用变量赋值另一个变量时,是将变量中存储的数据地址赋给另一个变量。
  • 特殊情况:数字和字符串,只要用过就不会重复开辟空间存放,因此地址一致,故满足is
num1 = 100 num2 = 100 print(id(num1), id(num2))

运行效果:

Day3|Day3 运算符、数字类型、字符串
文章图片
运行效果 3. 逻辑运算符:
a. and(逻辑与运算), or(逻辑或运算), not(逻辑非运算)
  • 逻辑运算符的运算对象和运算结果返回值都是布尔值。
  • 值1 and 值2 只有两个都为true,返回结果才为true,否则就是false,相当于生活逻辑中的“并且”
    true and true -> true
    true and false -> false
    false and false -> false
    false and true -> true
  • 当要求多个条件同时满足时,就使用逻辑与运算。
  • 短路操作:第一个条件是False,就不会去判断第二个条件,直接让整个或运算的结果是False
练习:如果考试成绩大于90分和平时表现成绩大于等于95分就能获得奖学金
grade = 90 score = 95 print("是否能拿奖学金", grade > 90 and score >= 95)

运行效果:

Day3|Day3 运算符、数字类型、字符串
文章图片
运行效果 b.值1 or 值2 ->只有两个都是false才为false,否则就是true,相当于生活逻辑中的“或者” true or true -> true
true or false -> true
false or false -> false
false or true -> true
  • 应用:要求多个条件只要有一个满足,就使用逻辑或运算:
  • 短路操作:第一个条件是true,就不会去判断第二个条件,直接让整个或运算的结果是True
练习:如果考试低于60分,或者上课不听讲就降班
grade = 70 is_not_in_class = False# True代表不在班级,False代表在班级 print('是否降班:', grade < 60 or is_not_in_class)

运行效果:

Day3|Day3 运算符、数字类型、字符串
文章图片
运行效果 c. 逻辑非运算:not 值1->运算对象和结果都是布尔值,对结果进行否定,或者取反。 not True -> False
not False -> True
练习:年龄不小于十岁
age = 20 print(not age < 10)

d.赋值运算符: =, +=, -=, *=, /=, //=, %=, **=
所有的赋值运算符要求赋值符号的左边必须是变量,右边必须是有结果的。
  • a. 变量 = 结果 --> 将结果赋值给变量
num1 = 100 num2 = num1# 变量赋值给变量,赋的是变量中存储的地址

  • b.+=, -=, *=, /=, //=, %=, **=
    复合赋值运算符要求赋值符号的左边除了是变量以为,还药物这个变量已经赋过值。
    变量 += 数字 --> 变量 = 变量 +数字(将变量原来的值加上指定的数字以后将新值再重新赋值给变量)
num3 = 3 num3 += 10# num3 = num3 +10 = 3 + 10 print(num3)# 13num3 -= 3# num3 = num3 - 3 = 13 - 3 print(num3)# 10

4. 复合运算:运算符的优先级
数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符,
优先级高的先算,优先级低的后算,但如果有(),先算()里面的
数学运算符中: ** > * / % // > + -
练习:
print(19 + 20 > 6**2 + 4 or 10 + 3 < 3 * 3)
布尔值True == 1 ,False == 0,可参与运算.
二、 数字类型 python的数字类型:int bool complex float
1.整型(int):包含所有的整数,支持十进制,二进制,八进制和十六进制。
num4 = 23 num = 0b100011# 0b + 二进制数 num5 = 0o7654321# 0o + 八进制数 num6 = 0xaf9456# 0x +十六进制数 print(num4,num5,num6,num)

运行效果:

Day3|Day3 运算符、数字类型、字符串
文章图片
运行效果
print('十进制',123) print('二进制',bin(123)) print('八进制',oct(123)) print('十六进制',hex(123)) print(0b0111) print(0b0111 + 2)

运行效果:

Day3|Day3 运算符、数字类型、字符串
文章图片
运行效果 2.浮点型: float 包含所有的小数,支持科学计数法。
num7 = 12.5 num2 = 3e2# 代表3乘以10的二次方 print(num2) num3 = 1.25e2 print(num3)

Day3|Day3 运算符、数字类型、字符串
文章图片
运行效果 3.布尔(bool): 值只有True和False两种,True == 1, False == 0.True还是表示真,肯定,Flase还是表示假,否定。
sun = True + 10 print(sun) print(True == 1, False == 0)

运行效果:

Day3|Day3 运算符、数字类型、字符串
文章图片
运行效果 3.复数(complex):
实部 + 虚部j,j前面必须有数字,不能省略。
三、字符串 1.字符串
通过''或者“”括起来的字符集(文本)就是字符串。
str1 = '123'
str2 = 'abc123'
2.字符串类型(str)
str是python自己提供的一种容器型数据类型,一个字符串中可以保存多个字符。
字符:python中只有字符的概念没有字符类型,
如果在puthon中要表示一个字符,用长度为1的字符串来表示。
字符串不可变但有序:不可变指的是字符的值和字符串的长度不可变,
有序指的是在一个字符串中,每个字符在字符串中的位置是确定的。
字符串"abc"和"bac"是不一样的
3.字符串中的字符:
  • a.普通字符:
    包含一般的字母,数字,符号,和其他文字。例如:'a','G','1','0','+','^','?','好'
    b.转义字符:通过在一些特定的字符前加,来表示特殊的功能或意义,这样的字符就是转义字符。
    \n - 换行
    ' - 表示一个单引号
    " - 表示一个双引号
    \ - 表示一个反斜杠
    \t - 表示一个Tab键
    注意:没有组织转义的时候,一个转义字符的长度是一。
    可以在字符串的前面加r/R,来阻止转义(阻止字符串中所有的字符转义)。
data = https://www.it610.com/article/100 data1 ='100' data2 = 'agj好123' str4 = '23\n45' str5 = '123\'we' str6 = "123\"w'qw" str7 = "\\hello \\npython" str8 = "\terer" str9 = R"\t姓名:小白\n\t年龄:18" str10 = "啊哈,你,需要我的帮助\u4E00\u9FA5" print(str4) print(str5) print(str6) print(str7) print(str8) print(str9) print(str10)

运行效果:

Day3|Day3 运算符、数字类型、字符串
文章图片
运行效果 3.编码字符
  • 在字符串中以"\u1234" +四位十六进制编码值;例如"\u1234"
4.字符编码:
  • 计算机在存储数据时只能存数字数据,而且存的是数字的二进制补码
    10 --> 转换成二进制 --> 存补码(求)
  • 字符的编码就是为了将字符存储到计算机中,给每个字符对应的一个固定数字,这个数字就是这个字符的编码。
  • 目前计算机采用的编码方式有两种,分别是ASCII码表和Unicode码表。
  • Python中采用的是Unicode编码,实际上Unicode码表就是对ASCII码表(就128个字符)的扩充。
  • ASCII码是采用一个字节对字符进行编码。
  • Unicode码包含ASCII码,采用两个字节对字符进行编码,包含了世界上所有的语言和符号,又称万国码。
  • 小写字母的编码范围为a-z(97-122),大写字母编码范围为A-Z(65-90)
  • 中文的编码范围:(0x4E00-0x9FA5)
  • 字符编码相关函数:
    a.chr(编码值) - 获取编码对应字符。
    b.ord)(字符)- =获取字符的编码值(以十进制形式返回)
    a -> 97
print(chr(0x0180)) print(hex(ord('俞')),hex(ord('雷')))

运行效果:

Day3|Day3 运算符、数字类型、字符串
文章图片
运行效果 课后作业
  1. 下面定义变量正确的是( a d)
    a. a = b = c = 10
    b. a,c = 10
    c. in = 20
    d. num = 10; t = 20
  2. n = 6784,以下能够获取到7 的方法有( c d )
    a. n / 1000 % 100
    b. n % 1000 / 100
    c. n // 100 % 10
    d. n // 10 % 100 // 10
9.以下表达式 10 / 4 + 23 // 4 * 2 - 30的计算结果是:2.5+10-30= -17.5。
#写代码获取输入数字12345中的每一位上的数字 num1 = 12345 print('第一位数:',num1 // 10000) print('第二位数:',num1 % 10000 // 1000) print('第三位数:',num1 % 1000 // 100) print('第四位数:',num1 % 100 // 10) print('第五位数:',num1 % 10) #写出判断一个数是否能同时被3和7整除的条件语句 num2 = 21 print(num2 % 3 == 0 and num2 % 7 == 0) #写出判断一个数是否能够被3或者7整除,但是不能同时被3和7整除的表达式 num3 = 21 print((num3 % 3 == 0 or num3 % 7 ==0 ) and (not num3 % 3 ==0 and num3 % 7 == 0)) # 今天上课讲了1500秒的课,编程计算今天上课时间是多少小时,多少分钟,多少秒 tim = 1500 print(tim // (60**2),'小时') print(tim % (60 ** 2) // 60,'分钟') print(tim % (60 ** 2) % 60,'秒') """ 定义两个变量保存一个人的身高和体重,编程实现判断这个人的身材是否完美! 公式:体重(kg)除以身高(m)的平方的值在18.5~24.9之间属于正常(输出True) """ height = 1.76 body_weight = 70 print(18.5 <= body_weight / height ** 2 <= 24.9)

运行结果:

Day3|Day3 运算符、数字类型、字符串
文章图片
运行结果

    推荐阅读