day03-关系运算符,逻辑运算符,字符串
笔记仅供参考,不喜勿喷
知识点1
关系运算符(比较运算符)
符号
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于,判断两个数是否相等
!= 不等于
格式:表达式1 关系运算符 表达式2
关系的值: 关系成立 得到结果True
关系不成立,得到结果False
例子:
sex = "男"
if sex == "男"
print("True")
print(sex == "男") 结果True
age = 20
print(age != 20)
知识点2 逻辑运算符
符号:and 逻辑 与(且)
or 逻辑 或
下午知识点7
字符串及操作
数据类型:
字符串,在python中用''单引号或者""双引号包裹起来的内容
name = "wen"
age = "18"
sex = "纯爷们"
拼接操作
字符串可以使用+ 来拼接两个字符串
"wen" is 纯爷们"
strDate = "wen" + "是一个" + sex
strDate = "小俊俊" + "是一个" + sex
注意字符串形式的数据不能与数字类型的数据直接拼接
steDate = "wen" + "的年龄是:" + age
steDate = "wen" + "的年龄是:" + str(age)
print(staDate)
乘法操作*
python的字符串可以进行乘法操作
staDate2 = "wen is a" + "very"*10 + "good man"
print(strDate2)
字符串的截取
strDate = "温 is a nice man!温"
提取字符串中的一个字符,
位置,下标,索引
格式:字符串名[索引值]
表示提取字符串中索引值对应位置的单个字符
索引是从0开始
str1 = strDate[0]
print(str1)
str2 = strDate[2] 得出i
空格也算一个位置字符
索引可以写负值,表示从字符串的最右侧开始数
str1 = strDate[-1] 得出温
字符串的格式化
print("name:" + "")
name = "wen"
age = 18
height = 1.88888
字符串的格式化
%s 替代一个可变的字符串
%d 替代一个可变的数字
%f 替代一个可变的浮点数
精确到几位数%.数值f
表示保留多少位小数
print("name:%s,age:%d,height:%.3f"%(name,age,height))
知识点9
字符串的转义字符
\n 表示字符串的换行 或者三个引号注释下
print("人生自古谁无死,\n那个拉屎不用纸")
print("""
人生自古谁无死
那个拉屎不用纸
""")
\u
\\ 表示 \ 反斜杠
strDate = "news\\ball"
print(strDate) 打印出是一个反斜杠
strDate2 = "news/ball"
print(strDate2)
strDate3 = "wen is a "good" man "
strDate3 = 'wen is a "good" man' 可以打印出双引号
反过来也可以,单引号跟双引号套用,一般外单内双
strDate3 = "wen is a \"good\" man "
\" 表示字符串中的引号"
\' 表示字符串中的引号'
\t 表示Tab键
strDate4 = "人生自古谁无死,\n\t留取丹心照汗青"
print(strDate)
路径: I:\sz1704\day04\video
windows操作系统:路径都是以 \ 反斜杠来连接
linux操作系统:路径是正斜杠 / 来连接
pathFile = " I:\sz1704\day04\video"
pathFile = " I:\\sz1704\\day04\\video"这个才是路径
在python中如果一个字符串中用到了大量的\转义字符,
我们又不想让它进行转义操作,可以在字符串前加 r 来解决
pathFile = r" I:\sz1704\day04\video"
print(pathFile)
\r 表示回车
知识点10
if语句
格式1:
格式2:
例子:
res = input("是否VIP(Y/N)")
if res == "Y":
print("请走VIP通道")
print("上飞机")
例子:
res = input("你看我头像牛B吗(像/不像)")
if res == "像":
print("像")
else:
print("不像")
print("........")
格式3:例子
方式一
需求:根据年龄来区分是 少年,青年,中年,老年
if age < 0:
print("您输入的不是人的年龄")
age = int(input("请输入您的年龄"))
if age > 0 and <= 6:
print("儿童")
elif age <= 17:
print("少年")
elif age <= 40:
print("青年")
elif age <= 65:
print("中年")
elif age <=100:
print("老年")
else:
print("老妖怪")
方式二
age = int(input("请输入您的年龄"))
if age > 0 and <= 6:
print("儿童")
if age > 6 and <= 17:
print("少年")
if age >17 and <= 40:
print("青年")
if age >40 and <= 65:
print("中年")
if age >65 and <=100
print("老年")
格式三
if 判断表达式1:
语句1
elif 判断表达式2:
语句2
........
else:
语句n
(else可写可不写,写了表示除else以上所有情况外)
格式四:if嵌套
案例:
sex = input("您的性别是:")
if sex == "女":
color = input("你白吗:")
money = int(input("你有钱吗"))
isBeautiful = input("你美吗:")
if color == "白" or money >= 10000 or isBeautiful== Y
print("你是一个好人")
if color == "白" and money >= 10000 and isBeautiful== Y
print("晚上那里吃饭")
else:
print("滚,我是纯爷们")
strl = strDate[20]
注意:IndexError: string index out of range 角标越界异常
获取字符串的长度
length = len(strDate)
print(length) 得出17 这个是1开始数的,索引是从0开始数
能取到的索引的最大值 = 长度 - 1
strl = strDate[len(len(strDate) - 1)]
print(strl)
截取一定范围的字符串
格式:字符串名[start:stop]
截取字符串中start位置到stop位置之间的字符串
start表示起始位值,包含
stop表示结束位置,不包含
name = strDate[0:3] 得出温先生
name = strDate[4:6] 得出is
print(name)
[star:stop] start可以省略不写,不写表示默认从0开始
stop 也可以忽略不写,不写则表示一直截取到末尾
strdate = strDate[:6]
strdate = strDate[7:]
strdate = strDate[-3:-1]
strdate = strDate[-1:-6] 得出没有
start位置索引要在stop表示的位置前面
print(strdate)
逆序
格式:字符串名[start:stop:step]
step表示步长,-1表示倒着数,默认是1
newdate = strDate[::-1]
newdate = strDate[::-2]
print(newdate)
not逻辑 非
格式 表达式1 and 表达式2 and(or/and 表达式.....)
值:如果表达式1为真,表达式2为真 结果为真
如果表达式1为真,表达式2为假 结果为假
如果表达式1为假,表达式2为真 结果为假
如果表达式1为假,表达式2为假 结果为假
只要有一个假的,结果就为假
例子:
age=19
if age <=20 and age >= 18:
print("True")
age=19
sex=男
if age <=20 and sex == "女" >= 18:
print("True")
短路原则
如果表达式1的结果为假的 ,结果已经判定为假,
则and后的表达式2不执行
符号: or 逻辑 或(or/and 表达式.....)
表达式1 or 表达式2
只要有一个真的,结果就为真
也遵循短路原则
符号: not 逻辑非
格式:not 表达式
值:如果表达式为真的,结果为假
如果表达式为假的,结果为真
归纳:颠倒黑白
通常用来排除某范围外的值
例子
sex = "男"
if not sex == "男":
print("False")
知识点3 成员运算符
符号: in 判断一个数值是否在一个指定序列中,
如果在,返回True
not in 判断一个数值是否不在一个指定序列中,
如果不在,返回True
格式: 数值 in 指定的序列
例子:
names = ["马蓉""白百合""芙蓉姐姐""凤姐""赵薇"]
girlFriendName = "赵薇"
if grilFriendName in names:
print("True")
else:
print("False")
if girlFriendName not in name
print("True")
else:
print("False")
知识点4 身份运算符
符号: is
not is
格式: 变量1 is 变量2
判断变量1与变量2的内存地址是否一致
== 是判断变量1与变量2的数值是否相等
num1 = 1
num2 = 2
if num1 == num2:
print("True")
else:
print("False")
list1 = [1,2,3,4]
list2 = [1,2,3,4]
if list1 == list2:
print("True")
else:
print("False") 结果为T
num1 = 1
num2 = 2
if num1 is num2:
print("True")
else:
print("False") 结果为T
list1 = [1,2,3,4]
list2 = [1,2,3,4]
if list1 is list2:
print("True")
else:
print("False") 结果为F
身份就是内存地址
查看变量的内存地址
格式:id(变量名)
内存地址是系统自动分配的
num3 = 2
list3 = list1
print(id(num1))
print(id(num2))
print(id(num3))
print(id(list1))
print(id(list1))
print(id(list3))
数字
不可变类型
num1 = 1,num = 1,定义num2的时候,会先检测内存中是否存在该值.
如果不存在会开辟新的空间,并把值存进来,将内存地址返回给该变量名
如果存在,会直接指向该值的内存地址
可变类型:list,dict
除此之外都是不可变 **
list1 = [1,2,3,4]
list2 = [1,2,3,4]
即使值一样定义了新的list时,开辟新的内存空间
内存地址0x232a等等 以16进制来表现的
list由变量名来决定内存地址
运算符的综合执行顺序
加括号就好,
知识点5
布尔值与空值
布尔值
数据类型: boolean 布尔值,只有2个值,
一个值为True 表示真
一个值为False表示假
何为真:不是假的就是真的
何为假:0,(空)"",None,False,[]
非0即为真,非空即为真
特殊的数据类型:None不占内存空间
空,
0也占空间
if :
print("True")
else:
print("False")
num1 = 1
num2 = None
num3 = 1 + num1 可执行
print(num3)
num1 = 1
num2 = None
num3 = 1 + num2
print(num3) 会报错
print(type(num2)) 可执行不过啥都没