python-字符串+变量

变量

  • 程序=数据结构+算法
  • 变量就是可以重复使用的一个量,或者叫一个代号
  • 变量命名的规则
    • 变量命名可以包含数字,大小写字母,下划线或者更多,但是我们不推荐除了前三种内容之外的符号
    • 数字不可以打头
      • 4man, 5for 是不可以的
      • man4, for5是可以的
    • 一般在python中,以下划线开头的内容具有特殊含义,不建议使用
      • 比如 _age, _name,理论可以,但强烈不推荐,包括但不限于一个下划线开头和两个连续下划线开头
    • 大小写不一样,俗称大小写敏感
      • ForMan 跟 forMan不是一个变量名称
    • 推荐:
      • 使用具有固定含义的英文单词或者缩写, srv=server skt=socket,一般以posix命名规则为主
      • 驼峰命名法
        • 名称以单词自动连接,且每个单词首字母大写
          • 大驼峰,每个单词第一个字母均大写
            • 在Python中给类命名使用此法
            • MyFirstLove, IntOne
          • 小驼峰,类似大驼峰,但第一个字母小写
            • 在Python中一般给普通变量或者函数命名
            • myFirstLove, intOne
          • posix写法
            • 多个单词用下划线链接
            • 单词全部小写
            • my_first_love, int_one
    • 保留字和关键字
      • 变量命名必须避开,不能跟关键字和保留字重复
      • class, def, break,for
        1 # 查看关键字的方法
        2 import keyword #引入关键字模块
        3 # 打印出系统全部关键字
        4 print(keyword.kwlist)
        5 
        6 
        7 
        8 ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
        View Code

        变量声明

        • var_name = var_value
        • var1 = var2 = var3 = var_value
        • var1, var2, var3 = v1, v2, v3
           1 # 定义变量age,把18放入变量age中
           2 age = 18
           3 print(age)
           4 print(18)
           5 
           6 # 给age1, age2, age3 放入同样一个内容或值
           7 age1 = age2 = age3 = 18
           8 print(age1)
           9 print(age2)
          10 print(age3)
          11 
          12 # 一行内给多个变量赋值
          13 age4, age5, age6 = 12, 21, 45
          14 print(age4)
          15 print(age5)
          16 print(age6)
          17 
          18 
          19 
          20 
          21 
          22 
          23 18
          24 18
          25 18
          26 18
          27 18
          28 12
          29 21
          30 45
          View Code

变量类型

  • 严格意义上讲,python只有一个类型
  • 标准数据一共六种
    • 数字类型Number
    • 字符串类型str
    • 列表list
    • 元组tuple
    • 字典 Dictionary
    • 集合 set

Number数字类型

  • 数字类型没有大小限制

    整数

  • 没有小数部分,表示个数的数字
  • 自然数,0,负自然数
  • 整数分进制
    • 二进制
      • 计算机常用
      • 是计算机唯一能直接理解的数字
      • 表示为0b开头的0,1代码
      • 例如 0b01101, 0b10001
    • 八进制
      • 不常用
      • 以0o开头的包含0-7的数字
    • 十六进制
      • 缝16进1
      • 其实是每四位二进制表示一位十六进制数
      • 包含0-9, a-f
      • 数字上以0x开头表示
    • 十进制
      • 18, 89, 178
         1 age = 18
         2 print(18)
         3 
         4 age = 0b10010
         5 print(age)
         6 
         7 age = 0o102
         8 print(age)
         9 
        10 age = 0xff #十六进制ff表示二进制的1111 1111
        11 print(age)
        12 
        13 
        14 
        15 
        16 18
        17 18
        18 66
        19 255
        View Code

浮点数

  • 小数
  • 计算机里边表示浮点数可以有条件省略
  • 3.1415
  • 3.
  • 0.5
  • .5
  • 科学计数法
    • 定义跟数学定义
    • 写法是用e/E后面跟整数表示10的指数
    • 176.23 == 1.7634e2
    • 0.876 == 8.76e-1
       1 height = 156.34
       2 print(height)
       3 
       4 shili = .2
       5 print(shili)
       6 
       7 shili = .6
       8 print(shili)
       9 
      10 
      11 
      12 
      13 156.34
      14 0.2
      15 0.6
      View Code

复数complex

  • 定义同数学定义一致
  • 一个由实部和虚部构成的数字
  • 虚部用j/J表示
  • 5+3j
  • 3j
  • (3j)

布尔值

  • 表示真假的值
  • 只有两个值, True/False
  • 布尔值可以跟数字直接操作
    1 #布尔值操作
    2 age = 18 + True
    3 print(age)
    4 
    5 
    6 19
    View Code

字符串

  • 用来表示一串文字信息
  • 如何表示
    • 单引号
    • 双引号
    • 三引号(三个单引号或者三个双引号)
      • 能够扩起多行信息
  • 单双引号交错使用
     1 love = "i love wangxiaojing"
     2 print(love)
     3 
     4 love = '我爱王晓静'
     5 print(love)
     6 
     7 # 单双引号交错使用的例子
     8 # <a style="color:red"> 哈哈哈</a>
     9 # 用引号表示上面字符串
    10 html = 'a style="color:red">哈哈哈</a>'
    11 
    12 
    13 htmls =  '''
    14 i love wangxiaojing
    15 我爱王晓静
    16 哈哈哈哈哈
    17 
    18 '''
    19 
    20 print(htmls)
    21 
    22 
    23 
    24 
    25 
    26 
    27 i love wangxiaojing
    28 我爱王晓静
    29 
    30 i love wangxiaojing
    31 我爱王晓静
    32 哈哈哈哈哈
    View Code

字符串

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

转义字符

  • 用一个特殊的方法表示出一系列不方便写出的内容,比如回车键,换行键,退格键
  • 借助反斜杠字符,一旦字符串中出现反斜杠,则反斜杠后面一个火几个字符表示已经不是原来的意思了,进行了转义
  • 在字符串中,一旦出现反斜杠就要加倍小心,可能由转义字符出现
  • 不同系统对换行操作有不同的表示
    • windows: \n
    • Linux: \r\n
       1 s = "i love lixiaojing"
       2 print(s)
       3 
       4 
       5 i love lixiaojing
       6 
       7 
       8 # 如果想表示出Let‘s go来
       9 # 1. 可以使用嵌套引号,即外层使用双引号
      10 # 2. 转义字符
      11 s = "Let's go"
      12 print(s)
      13 
      14 #\' == '
      15 ss = 'Let\'s go'
      16 print(ss)
      17 
      18 # \\ = \
      19 sss = "c:\\user"
      20 print(sss)
      21 
      22 # 回车换行符
      23 s1 = "I love \r\n wangixoajing"
      24 print(s1)
      25 
      26 
      27 
      28 Let's go
      29 Let's go
      30 c:\user
      31 I love 
      32  wangixoajing
      View Code

字符串的格式化

  • 把字符串按照一定格式打印或者填充
  • 格式化由两种方法
    • 利用百分号(%)
    • 利用format函数
      s = "xxx 您好, 我们图灵学院开课了,免费的Python呀,不学白不学,学了也白学。"
      View Code

利用百分号格式化

  • 在字符串中,利用%表示一个特殊的含义,表示对字符进行格式化
  • %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
    View Code
    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
    View Code

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
    View Code

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
    View Code

比较运算符

  • 对两个变量或者值进行比较的运算符
  • 比较的结果是布尔值,即True/False
    # == , 等于号
    a = 3 ** 4
    # 下面语句执行书序是
    # 1, 计算 a == 80
    # 2. 把结果放入b中
    b = a == 80
    print(b)
    
    
    # != 不等于
    print( 9 != 8 )
    
    # > 大于
    # < 小于
    # >= 大于等于
    # <= 小于等于
    
    
    
    
    False
    True
    View Code

赋值运算符

# = , 赋值
a = 0
c = a = 4

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


# 所有数学运算符都有缩写形式
# -=, ×=, /=, //=, %=, **=,都是缩写形式



7
View Code

逻辑运算符

  • 对布尔值进行计算的符号
  • 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)
      
      
      True
      True
      View Code
      # 逻辑运算的短路案例
      
      # 下面的逻辑表达式,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
      View Code

成员运算符号

  • 用来检测某一个变量是否是另一个变量的成员
  • 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
    View Code

身份运算

  • 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
    View Code

运算符的优先级问题

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

  • 优先级表格

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

程序结构

  • 顺序
  • 分支
  • 循环
posted @ 2020-04-10 11:38  kellen-fang  阅读(553)  评论(0编辑  收藏  举报