注意:相关笔记或代码段之间空一行,没有联系知识点之间的代码段之间空两行,以示区别!!!

笔记note2.md

技术交流QQ群:1027579432,欢迎你的加入!

字符串

  • 转义字符
  • 格式化
  • 内建函数(后延)

转义字符

  • 用一个特殊的方法表示出一系列不方便写出的内容,比如回车键,换行键,退格键
  • 借助反斜杠字符,一旦字符串中出现反斜杠,则反斜杠后面一个或几个字符表示已经不是原来的意思了,进行了转义
  • 在字符串中,一旦出现反斜杠就要加倍小心,可能由转义字符出现
  • 不同系统对换行操作有不同的表示
    • windows: \n
    • Linux: \r\n

字符串的格式化

  • 把字符串按照一定格式打印或者填充
  • 格式化由两种方法
    • 利用百分号(%)
    • 利用format函数

利用百分号格式化

  • 在字符串中,利用%表示一个特殊的含义,表示对字符进行格式化
  • %d: 此处应该放入一个整数
  • %s: 表示此处应该放入一个字符串

format函数格式化字符串

  • 直接用format函数进行格式化
  • 推荐使用这种方法
  • 在使用上,以{}和:代替%号,后面用format带参数完成

None

  • 表示什么都没有
  • 如果函数没有返回值,可以返回 None
  • 用来占位置
  • 用来接触变量绑定

表达式

  • 由一个或者几个数字或者变量和运算符组合成的一行代码
  • 通常会返回一个结果

运算符

  • 由一个以上的值经过变化得到新值的过程就叫运算
  • 用于运算的符号叫运算符
  • 运算符分类:
    • 算数运算符
    • 比较或者关系运算符
    • 赋值运算符
    • 逻辑运算符
    • 位运算
    • 成员运算
    • 身份运算符

算数运算符

  • 进行算数运算的符号
  • python没有自增自减运算符

比较运算符

  • 对两个变量或者值进行比较的运算符
  • 比较的结果是布尔值,即True/False

赋值运算符

逻辑运算符

  • 对布尔值进行计算的符号
  • and 逻辑与
  • or 逻辑或
  • not 逻辑非
  • python中逻辑运算没有异或运算
  • 运算规则:
    • and看做乘法, or看做加法,
    • True看做1, False看做0
    • 则逻辑运算就能转换成整数数***算
    • 最后结果如果是0则为False, 否则为True
  • 逻辑运算的短路问题
    • 逻辑运算式,按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回

成员运算符号

  • 用来检测某一个变量是否是另一个变量的成员
  • in
  • not in

身份运算

  • is: 用来检测两个变量是否是同一个变量
    • 语法就是 var1 is var2
  • is not: 两个变量不是同一个变量

运算符的优先级问题

  • 永远记住,括号具有最高优先级

  • 优先级表格

    **  指数 (最高优先级)
      ~ + -   按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
      * / % //    乘,除,取模和取整除
      + - 加法减法
      >> <<   右移,左移运算符
      &   位 'AND'
      ^ | 位运算符
      <= < > >=   比较运算符
      <> == !=    等于运算符
      = %= /= //= -= += *= **=    赋值运算符
      is is not   身份运算符
      in not in   成员运算符
      not or and  逻辑运算符

程序结构

  • 顺序
  • 分支
  • 循环

代码 2.字符串+变量.py

!/usr/bin/env python

-- coding: utf-8 --

@Date : 2018-10-08 22:12:23

@Author : cdl (1217096231@qq.com)

@Link : https://github.com/cdlwhm1217096231/python3_spider

@Version : Id

s = "i love lixiaojing"
print(s)

如果想表示出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)

s = "xxx 您好, 我们图灵学院开课了,免费的Python呀,不学白不学,学了也白学。"
s = "I love %s"

下面打印,直接把%s作为字符串的一个内容打印出来

print(s)

print("I love %s" % "wangxiaojing")
s = "I am %d years old"

留意下面两句话的区别和结果

print(s)
print(s % 18)

s = "I am %s, i am %d years old"
print(s)

注意以下表达的出错原因:

如果字符串中由占位符,则由几个占位符必须用几个实际内容代替,或者一个也不要

print(s%"tulingxueyuan")

如果出现多个占位符,则相应内容需要用括号括起来

print(s % ("tulingxueyuan", 18))

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)

+,-跟正常算术运算符一模一样

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)

== , 等于号

a = 3 ** 4

下面语句执行书序是

1, 计算 a == 80

2. 把结果放入b中

b = a == 80
print(b)

!= 不等于

print(9 != 8)

> 大于

< 小于

>= 大于等于

<= 小于等于

= , 赋值

a = 0
c = a = 4

+=, 是缩写,

a = 0
a += 7 # a = a+7 的缩写
print(a)

所有数***算符都有缩写形式

-=, ×=, /=, //=, %=, **=,都是缩写形式

逻辑运算符案例

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,则运行到or的时候,整个表达式不在向下计算

a = True or xxxxxxxxxxx

下面表达式,如果xxx中包含赋值表达式,则结果很难预期

代码示例(伪代码)

b = 0

a = a or (b=9) and 6

假定上面表达式如果没有语法错误

则b最终的值应该是0而不是9

print(b)
print(a)

案例

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)

a = 9
b = 9
print(a is b)

a = "I love wangxiaojing"
b = "I love wangxiaojing"
print(a is b)