• Python基础知识笔记(二)


    一. if 小知识

     1 if 2 > 1:
     2     print(666)
     3 if 3 > 2:
     4     print(111)
     5 else:
     6     print(222)
     7 
     8 # 这里的两个 if 语句之间是没有关系的, 下面的 if 只能 else 语句是一个代码块
     9 # 因此两者之间的结果不受影响,故打印结果是
    10 # 666
    11 # 111

    二. while 循环相关知识点

    1 while True:
    2     print("凉凉")
    3     print("起风了")
    4 
    5 print(666)
    6 
    7 # 注意这里的 while 语句是一个死循环,所以不会打印出 666 这个结果
     1 flage = True
     2  
     3 while flag:
     4     print("凉凉")
     5     print("起风了")
     6     flag = False
     7     print("还会运行")
     8  
     9 # 在 while 循环里加了 flag = True 这个条件,这样就不再是死循环了
    10 # "还会运行" 能打印出来,因为循环会把缩进的内容都打印出来,不会因为上面的 flag = True 这个条件就马上结束 while 循环的运行
    11 # 注意与下面的 break 语句对比
     1 # break — 直接终止循环
     2 
     3 while True:
     4     print(111)
     5     print(222)
     6     break
     7     print(333)
     8 
     9 # 这个程序与上面的结果不同,这里会打印出 111 222 ,但是不会打印出 333
    10 # 注意与下面的 continue 语句比较
     1 # continue — 中断本次循环,接着下一次循环
     2 
     3 # 打印出 1-10 的所有数字(7除外)
     4 
     5 # 方法一
     6 # 同时使用 continue 和 break 进去
     7 count = 0
     8 
     9 while True:
    10     count = count + 1
    11     if count == 7:
    12         continue
    13     if count == 11:
    14         break
    15     print(count)
    16 
    17 # 方法二
    18 count = 0
    19 
    20 while count < 10:
    21     count = count + 1
    22     if count == 7:
    23         continue
    24     print(count)  # 注意 print 的位置不在 if 语句缩进内容
    25 
    26 # 方法三
    27 count = 0
    28 
    29 while count < 10:
    30     count = count +1
    31     if count  == 7:
    32         pass
    33     else:
    34         print(count)
    35 
    36 # 方法四
    37 count = 0
    38 
    39 while count < 10:
    40     count = count + 1
    41     if count == 7:
    42         count = count + 1
    43     print(count)
    continue 与 break 比较
     1 # 使用 while 循环打印出 1-100
     2 
     3 # 方法一
     4 number = 0
     5 
     6 while number < 100:
     7     number = number + 1
     8     print(number)
     9 
    10 # 方法二
    11 count = 1
    12 flag = True
    13 
    14 while flag:
    15     print(count)
    16     count = count + 1
    17     if count == 101:
    18         flag = False
    19 # 这种方法貌似更麻烦,但是用法必须会
     1 # 从 1 加到 100 使用 while 循环
     2 
     3 # 方法一:不使用 break 语句
     4 count = 1
     5 sum1 = 0
     6 
     7 while count < 101:
     8     sum1 = sum1 + count
     9     count = count + 1
    10 
    11 print(sum1)
    12 
    13 # 方法二:使用 break 语句的用法
    14 count = 1
    15 sum1 = 0
    16 
    17 while True:
    18     sum1 = sum1 + count
    19     count = count + 1
    20     if count == 101:
    21         break
    22 
    23 print(sum1)
     1 # 另外,在 while - else 循环中,如果 while 循环中有 break 语句, 那么下面的 else 语句不执行。
     2 # for...in - else 语句是一样的用法  注意:两个都必须有break的情况下用 else 语句来分流
     3 count = 0 
     4 
     5 while count < 5:
     6     count += 1
     7     print("计数", count)
     8 
     9 else:
    10     print("到这里程序结束.")
    11 
    12 # 注意与下面的比较
    13 
    14 count = 0 
    15 
    16 while count < 5:
    17     count += 1
    18     if count == 3: break
    19     print("计数", count)
    20 
    21 else:
    22     print("这个 else 语句不会执行.")

    三. 使用 格式化输出 来制作一个公共模板

     1 # %-占位符  s-字符串  d-数字
     2 
     3 name = input("请输入姓名:")
     4 age = input("请输入年龄:")
     5 job = input("请输入工作:")
     6 hobby = input("请输入爱好:")
     7 
     8 msg = '''
     9 -------- info of %s --------
    10 Name: %s
    11 Age: %s
    12 Job: %s
    13 Hobby: %s
    14 ---------- end ----------
    15 ''' % (name, name, age, job, hobby)
    16 
    17 print(msg)
    18 
    19 # 这里注意一个小坑,如果需要在格式化输出中把 % 当作占位符,需要写两个 %

    四. 运算符相关知识

    1. 优先级:

        ( ) > not > and > or

    Python运算符优先级

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

    2. 数据之间的转换

     1 # 整数型转为布尔值     int ---> bool
     2 
     3 print(bool(-2))       # True
     4 print(bool(0))        #  False
     5 print(bool(4))        #  True
     6 
     7 # 由此可见,只要整数不是 0, 那么它的布尔值就是 True    
     8 
     9  
    10 # 布尔值转为整数型     bool ---> int
    11 # 布尔值就两个, True  False
    12 
    13 print(int(True))    # 1
    14 print(int(False))   # 0
    15  
    16 # 布尔值 True 转为 整数型 即为 1,因此在 while 循环中
    17 # while True 等同于 while 1
    18  
    19 
    20 # 字符串转为整数型     str ---> int
    21 # 转换前提是 字符串必须都是由数字组成
    22 
    23 print(int('100'), type(int('100')))     # 100 <class 'int'>
    24  
    25 
    26 # 整数型转为字符串     int ---> str
    27 
    28 print(str(100), type(str(100)))       # 100 <class 'str'>
    29 
    30 
    31 # 字符串转为布尔值     str ---> bool
    32 
    33 print(bool('askdjalk'), type(bool('askdjalk')))    # True
    34 print(bool('0'), type(bool('0')))                     # True
    35 print(bool('000'), type(bool('000')))               # True
    36 print(bool('111'), type(bool('111')))               # True
    37 print(bool(""), type(bool("")))                       # False
    38 
    39 # 由此可见,字符串转为布尔值只需记住一点:非空即True
    40 
    41 
    42 # 布尔值转为字符串     bool ---> str
    43 
    44 print(str(False), type(str(False)))     # False <class 'str'>
    45 print(str(True), type(str(True)))       # True <class 'str'>
    46 # 这个和整数型转为字符串一样,就直接变成字符串了
    数据类型之间的转换

     补充: 如果一个字符串的引号之间没有内容,但是有空格隔开,比如 s = " ",哪怕有一个空格,那这个 s 也是一个字符串,不是空字符串!

    3. 运算符的几种方式

     1 # 两边都是不等式
     2 
     3 print(1 < 2 and 3 > 4 or 2 > 1 and 5 < 2)
     4 
     5 # 比较方法如下
     6 # 先比较两个 and 的内容
     7 # 首先第一个 and 左右两边, 1 < 2 为 True, 3 > 4 为 False.  
     8 # 这样就转为  True and False , 结果为 False (and 两边都为真才是真)
     9 # 依次推出第二个 and 的比较, 结果为 False
    10 # 这样就变成 False or False , 结果为 False (or 两边只要有一个是真即为真)
     1 # 运算符两边都是数字
     2 # 只需记住这一点:
     3 # x or y 中, 如果 x 为 True, 那么比较结果即是 x,否则结果是 y.
     4 # x and y 的情况与 x or y 的情况相反,只需记住上面的情况即可!
     5 
     6 print(0 or 4 and 3 or 7 or 9 and 6)    # 3
     7 
     8 # 比较方法如下:
     9 # 先比较两个 and 的内容
    10 # 首先,4 and 3 , 如果是 or,4 为 True,结果即是 4. 但这里是 and, 结果即为 3
    11 # 然后 9 and 6, 推断过程一样,结果即为 6
    12 # 接下来就是 0 or 3 or 7 or 6
    13 # 先比较 0 or 3,0 为 False,结果是 3
    14 # 依次类推,剩下的是 3 or 7 or 6。 3 or 7 结果是 3
    15 # 此时变为 3 or 6, 同理结果是 3
    16 
    17 print(0 and False)  # 0
    18 
    19 # 比较方法如下:
    20 # 先比较 0 or False, 0 为 False, 所为结果是 y, 即 False。
    21 # 这里是 and 比较,所以结果反过来,即为 0
    22 # 注意不要反过来的时候反错了,我一开始就把 False 反过来变为 True...

    4. in 的判断方法

    1 print("喜欢" in "akljslkaj喜欢jlkaj")     # True
    2  
    3 print("喜欢" in "sajdkl喜3欢akjslk")    # False
    4 
    5 # 注意这里的 "喜欢" 是一个整体

     

    五. 字符编码相关知识

    1.  编码的定义:

             简单来说,编码就是人类能识别的文字与机器能够读懂的二进制的对应关系表。

    2.  ASCII:

             最早的编码本,只包含:数字、字母、特殊字符
             8位(bit)一个字节表示一个字符

    3. Unicode:

         万国码——将全世界所有的语言都包含进去
         早期:
         16位(bit)两个字节表示一个字符
         升级:
         32位(bit)四个字节表示一个字符

    4. UTF-8:
         a: 一个字节表示一个字符
         欧:两个字节表示一个字符
         中: 三个字节表示一个字符

    5. GBK:
         每个国家都有每个国家的标准
         a: 一个字节表示一个字符
         中:两个字节表示一个字符

    注意:
       数字、字母、特殊字符映射的是 ASCII

    6.  示例:

               "Python学习"

               Unicode中,占用 32 个字节——不管是汉字还是字母,都是四个字节表示一个字符,这里有 6 个英文字符和 2 个中文字符

               UTF-8中,占用 12 个字节。同理推出,在 GBK 中,占用 10 个字节。

  • 相关阅读:
    Maven项目上总有一个小红叉问题
    Maven web项目创建
    MogileFS操作指令
    MogileFS安装
    mongo与spring集合
    linux上启动tomcat报错:Failed to read schema document 'http://www.springframework.org/schema/data/mongo/spring-mongo-2.0.xsd
    数据导入导出
    备份和恢复
    身份验证
    Mongo DB分片
  • 原文地址:https://www.cnblogs.com/shawnhuang/p/10149459.html
Copyright © 2020-2023  润新知