03-字符串+变量
# 字符串 - 转义字符 - 格式化 - 内建函数(后延) ## 转义字符 - 用一个特殊的方法表示出一系列不方便写出的内容,比如回车键,换行键,退格键 - 借助反斜杠字符,一旦字符串中出现反斜杠,则反斜杠后面一个火几个字符表示已经不是原来的意思了,进行了转义 - 在字符串中,一旦出现反斜杠就要加倍小心,可能由转义字符出现 - 不同系统对换行操作有不同的表示 - windows: \n - Linux: \r\n
s = "i love lixiaojing" print(s) i love lixiaojing
# 如果想表示出Let‘s go来 # 1. 可以使用嵌套引号,即外层使用双引号 # 2. 转义字符 s = "Let's go" print(s) #\' == ' ss = 'Let\'s go' print(ss) # \\ = \ sss = "c:\\user" print(sss) # 回车换行符 s1 = "I love \r\n wangixoajing" print(s1)
Let's go Let's go c:\user I love wangixoajing
## 字符串的格式化 - 把字符串按照一定格式打印或者填充 - 格式化由两种方法 - 利用百分号(%) - 利用format函数
s = "xxx 您好, 我们图灵学院开课了,免费的Python呀,不学白不学,学了也白学。"
### 利用百分号格式化 - 在字符串中,利用%表示一个特殊的含义,表示对字符进行格式化 - %d: 此处应该放入一个整数 - %s: 表示此处应该放入一个字符串
s = "I love %s" # 下面打印,直接把%s作为字符串的一个内容打印出来 print(s)
I love %s
print("I love %s"%"wangxiaojing") I love wangxiaojing print( s%"wangxiaojing") I love wangxiaojing s = "I am %d years old" # 留意下面两句话的区别和结果 print(s) print(s%18) I am %d years old I am 18 years old
s = "I am %s, i am %d years old" print(s) # 注意以下表达的出错原因 # 如果字符串中由占位符,则由几个占位符必须用几个实际内容代替,或者一个也不要 #print(s%"tulingxueyuan") # 如果出现多个占位符,则相应内容需要用括号括起来 print(s%("tulingxueyuan", 18)) I am %s, i am %d years old I am tulingxueyuan, i am 18 years old
### format函数格式化字符串 - 直接用format函数进行格式化 - 推荐使用这种方法 - 在使用上,以{}和:代替%号,后面用format带参数完成
s = "I love {}".format("LiXiaojing") print(s) s = "Yes, i am {1} years old, I love {0} and i am {1} years old".format("Tulingxueyuan", 18) print(s) I love LiXiaojing Yes, i am 18 years old, I love Tulingxueyuan and i am 18 years old
## None - 表示什么都没有 - 如果函数没有返回值,可以返回 None - 用来占位置 - 用来接触变量绑定 # 表达式 - 由一个或者几个数字或者变量和运算符组合成的一行代码 - 通常会返回一个结果 # 运算符 - 由一个以上的值经过变化得到新值的过程就叫运算 - 用于运算的符号叫运算符 - 运算符分类: - 算数运算符 - 比较或者关系运算符 - 赋值运算符 - 逻辑运算符 - 位运算 - 成员运算 - 身份运算符 ## 算数运算符 - 进行算数运算的符号 - python没有自增自减运算符
# +,-跟正常算术运算符一模一样 a = 9+3-2 print(a) # 乘号用星号(*)代替 a = 9 * 4 print(a) # 除号用斜杠(/)代替 # 在Python2.x 和python3.x 中,除号(/)结果可能不一致,此处以3系列为准 a = 9/4 print(a) # % 取余运算 # 两个数字相除应该有商数有余数 # % 只会得到余数 a = 9 % 4 print(a) # // 表示取商运算,也叫地板除 a = 9 // 4 print(a) # ** 表示幂运算 a = 9 ** 4 print(a) a = 3 ** 3 print(a) 10 36 2.25 1 2 6561 27
## 比较运算符 - 对两个变量或者值进行比较的运算符 - 比较的结果是布尔值,即True/False
# == , 等于号 a = 3 ** 4 # 下面语句执行书序是 # 1, 计算 a == 80 # 2. 把结果放入b中 b = a == 80 print(b) # != 不等于 print( 9 != 8 ) # > 大于 # < 小于 # >= 大于等于 # <= 小于等于 False True
## 赋值运算符
# = , 赋值 a = 0 c = a = 4 # +=, 是缩写, a = 0 a += 7 # a = a+ 7 的缩写 print(a) # 所有数学运算符都有缩写形式 # -=, ×=, /=, //=, %=, **=,都是缩写形式 7
# 逻辑运算符 - 对布尔值进行计算的符号 - and 逻辑与 - or 逻辑或 - not 逻辑非 - python中逻辑运算没有异或运算 - 运算规则: - and看做乘法, or看做加法, - True看做1, False看做0 - 则逻辑运算就能转换成整数数学运算 - 最后结果如果是0则为False, 否则为True - 逻辑运算的短路问题 - 逻辑运算式,按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回
# 逻辑运算符案例 a = True b = False c = True # 以下式子等价于 d = 1 * 0 + 1 d = a and b or c print(d) d = a or b and a print(d) # 逻辑运算符案例 a = True b = False c = True # 以下式子等价于 d = 1 * 0 + 1 d = a and b or c print(d) d = a or b and a print(d) # 逻辑运算符案例 a = True b = False c = True # 以下式子等价于 d = 1 * 0 + 1 d = a and b or c print(d) d = a or b and a print(d) True True
# 逻辑运算的短路案例 # 下面的逻辑表达式,a的值一定是True,则运行到or的时候,整个表达式不在向下计算 a = True or xxxxxxxxxxx # 下面表达式,如果xxx中包含赋值表达式,则结果很难预期 # 代码示例(伪代码) b = 0 a = a or (b=9) and 6 # 假定上面表达式如果没有语法错误 # 则b最终的值应该是0而不是9 print(b) print(a) File "<ipython-input-43-bb4253784911>", line 9 a = a or (b=9) and 6 ^ SyntaxError: invalid syntax
# 成员运算符号 - 用来检测某一个变量是否是另一个变量的成员 - in - not in
# 案例 l = [1,2,3,4,5] a = 7 b = a in l print(b) a = 4 print(a in l) print(a not in l) False True False
## 身份运算 - is: 用来检测两个变量是否是同一个变量 - 语法就是 var1 is var2 - is not: 两个变量不是同一个变量
a = 9 b = 9 print( a is b) a = "I love wangxiaojing" b = "I love wangxiaojing" print( a is b) True False
## 运算符的优先级问题 - 永远记住,括号具有最高优先级 - 优先级表格 ** 指数 (最高优先级) ~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) * / % // 乘,除,取模和取整除 + - 加法减法 >> << 右移,左移运算符 & 位 'AND' ^ | 位运算符 <= < > >= 比较运算符 <> == != 等于运算符 = %= /= //= -= += *= **= 赋值运算符 is is not 身份运算符 in not in 成员运算符 not or and 逻辑运算符 # 程序结构 - 顺序 - 分支 - 循环