while循环+格式化输出+运算符+编码

1、while循环

  • while无限循环
  • 基本结构
while 条件:
    循环体
while True:

    print("1")

    print("2")
  • 基本原理

    • 先判断条件是否为True
    • 如果是True进入循环体
    • 执行到循环体的底部
    • 继续判断条件,条件成立,进入循环体,......
  • 循环如何终止

    • 改变条件

      flag = True
      while flag:
          print("1")
          print("2")
          print("3")
          flag = False          #flag重新赋值
          print("4")
          print("5")
      

      打印1-100

      num = 0
      flag = True
      while flag:
          num+=1
          print(num)
          if num == 100:
              flag =False
      
      num = 1
      while num < 101:
          print(num)
          num += 1
      

      打印1+2+3+.......+100

      s = 0              #设置一个变量用于保存求和结果
      num = 1            #设置一个变量用于累加
      while num < 101 :  
          s = s + num    #将累加的结果保存在S中
          num += 1       
      print(s)
      
    • break

      • 循环中遇到break直接跳出循环
    • continue

      • 退出本次循环,重新回到判断条件继续下一次循环
    • 系统命令

  • while else

    • 如果while被break打断,则不执行else。

2、格式化输出

  • 制作一个公共的模板
  • 让一个字符串的某些位置变成动态可传入的
  • % 占位符 s→str
name = input("请输入你的姓名")
age = input("请输入你的年龄")
job = input("请输入你的工作")
hobby = input("请输入你的爱好")
msg = """------- info of %s --------
Name: %s
Age : %s
Job : %s
Hobby:%s
-------- end --------""" %(name,name,age,job,hobby)
print(msg)
  • 在格式化输出中,只想表示一个百分号,而不是作为占位符使用,%%

3、运算符

  • 算数运算符 + - * / %(取余) **(求幂) //(取整除,返回商的整数部分)

  • 比较运算符 > < ==(等于) != (不等于) <> (不等于) >= <=

  • 赋值运算符 = += -= *= /= %= **= //=

  • 逻辑运算符 and or not

    • 在没有()的情况下,优先级:not > and > or ,同一优先级从左至右依次计算

      • 情况1,:两边都是比较运算

        print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1)
        2 > 1 and 3 < 4   #Ture
        4 > 5 and 2 < 1   #False
        print(Ture or False)    #结果为Ture
        
      • 情况2:两边都是整数

        • x or y ,x 为真,值就是x,x为假,值就是y

      str--->int :只能是纯数字组成的字符串

      int---->str

      int---->bool :非零即Ture,0为False

      bool--->int

      print(int(True))    #1
      print(int(False))    #0
      
  • 成员运算符

4、编码

  • ASCII码:只包含:英文字母,数字,特殊字符

    • 8bit == 1byte 0000 0001
    • 'hello123' : 8byte
  • gbk : 英文字母,数字,特殊字符和中文。国标

    • 一个英文字母 :1byte 0000 0001
    • 一个中文 :2byte 0000 0001 0000 0001
  • Unicode : 万国码 把世界上所有的文字都记录到这个密码本

    • 起初一个字符用2个字节表示 0000 0001 0000 0001

    • 后来为了覆盖全部文字,用4个字节表示一个字符,浪费空间,浪费资源

      0000 0001 0000 0001 0000 0001 0000 0001

    • Unicode升级版,Utf-8

  • Utf-8 : 升级,最少用8bit1个字节表示一个字符

    • 英文: 1字节 0000 0001
    • 欧洲 :2个字节 0000 0001 0000 0001
    • 中文: 3个字节 0000 0001 0000 0001 0000 0001

    '中国12he' : GBK : 8个字节

    '中国12he' : UTF-8 :10 个字节

#单位换算
8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024TB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB  

5.5MB  ----> 5.5 * 1024 * 1024 * 8
posted @ 2020-04-25 22:16  阿哈a  阅读(100)  评论(0)    收藏  举报