zoukankan      html  css  js  c++  java
  • Python基础(二)

    今日主要内容

    • while 循环
    • 格式化输出
    • 基本运算符
    • 编码初识

    一、while循环

    (一)什么是while循环

    • 循环就是反复,不断的重复某件事情,比如我们日常听歌单曲循环、列表循环
    • 在程序中如果想要重复执行某些代码,不能说执行100次就重复敲100次代码,这里就利用到循环
    • 在python中循环代码利用while关键字

    (二)while循环的格式

    • while
    while condition:
    	循环体
    
    • while else
    while condition:
    	循环体
    else:
    	result
    

    (三)两种循环思想

    1. 死循环

      • 当循环条件为1或真的时候,循环体将被无限次执行
      while True:
          print("崩溃的郭老湿!")
          print("崩溃也开车!")
          print("精溢求茎的郭桑!")
          print("黑山老污郭!")
      

    2. 计数循环

      • 利用条件控制循环次数
      count = 0
      while count < 2:
      	print("人贱人爱的郭老湿!")  # 打印三遍
          count = count + 1
      

    (四)break和continue

    • break 和 continue 下方的代码都不会被执行
    1. break

      • 终止当前循环
      count = 0
      while count < 5:
      	print("茎候佳阴的郭老湿!")  # 打印三遍
      	count = count + 1
      	if count == 3:
      		break    # 当count加到3的时候终止循环
      
    2. continue

      • 跳出本次循环,继续下次循环
      • 伪装成循环体的最后一行代码
      count = 0
      while count < 5:
      	if count == 2:
      		count = count + 1
      		continue
      	count = count + 1
      	print(str(count)+"粪发涂墙的郭老湿!")  
          # 当count等于3的时候跳出,继续下次循环
      

    (五)两种格式的区别

    • while else 中 else下的代码块属于while

    • while循环结束后的代码块与while无关

      • while
      count = 1
      while count < 5:
      	print(count)
      	count = count + 1
      	if count == 3:
      		break
      print("疯牛涕淌的郭老湿!")  # break跳出执行
      
      • while else
      count = 1
      while count < 5:
      	print(count)
      	count = count + 1
      	if count == 3:
      		break
      else:
      	print("疯牛涕淌的郭老湿!")  # break跳出不执行
      

    (六)while嵌套

    • break只终止当前循环,当break在内层while中,对外层while无影响

    • 理解程序自上而下运行的机制

      count_a = 0
      count_b = 0
      while count_a < 5:
          print("a" + str(count_a), end=" ")
          count_a += 1
          while count_b < 3:
              print("b" + str(count_b), end=" ")
              count_b += 1
              if count_b == 1:
                  break
      
      
      输出结果:a0 b0 a1 b1 b2 a2 a3 a4 
      
      

    二、格式化输出

    (一)什么是格式化输出

    • 先看一个例子

      • 输入每个人的信息,并以下面代码块格式输出
      *******info********
      name:ZXD
      age:23
      sex:nan
      hobby:年轻漂亮小姐姐
      *******************
      
      
      • 直接用print输出
      a = "*******info********"
      b = "name:"
      c = "age:"
      d = "sex:"
      e = "hobby:"
      f = "*******************"
      name = input("name:")
      age = input("age:")
      sex = input("sex:")
      hobby = input("hobby:")
      print(a)
      print(b + name)
      print(c + age)
      print(d + sex)
      print(e + hobby)
      print(f)
      
      
      • 很长很麻烦,如果利用格式化输出,将变成这个样子
      name = input("name:")
      age = input("age:")
      sex = input("sex:")
      hobby = input("hobby:")
      
      info = '''*******info********
      name:%s
      age:%s
      sex:%s
      hobby:%s
      *******************
      '''
      
      print(info % (name, age, sex, hobby))
      
      
      • 还可以这样写(python3.6及以上版本可以使用f)
      name = input("name:")
      age = input("age:")
      sex = input("sex:")
      hobby = input("hobby:")
      
      info = f'''*******info********
      name:{name}
      age:{age}
      sex:{sex}
      hobby:{hobby}
      *******************
      '''
      
      print(info)
      
      
    • 格式化输出就是:可以利用固定的格式,需要变化的部分利用占位符占位,在%后按照占位顺序依次输入

    (二)格式化输出写法

    • 格式化输出共有三种写法

      • 占位符法
      • 小f(仅支持python3.6及以前版本)
      • format() 方法
      md1 = "My name is %s, I'm %s years old." % (name, age)
      
      md2 = f"My name is {name}, I'm {age} years old."
      
      md3 = "My name is {}, I'm {} years old.".format(name, age)
      
      
    • 转义符:两个相同的符号就是转义符,如 %%

      t = "今日笔记完成进度为%d%%" % count  # %% 代表 %
      
      
    • 占位符类型

      • %s:可以填充字符串,也可以填充数字
      • %d:可以填充数字

    三、基本运算符

    (一)比较运算符

    • > 大于
      < 小于
      >= 大于等于
      <= 小于等于
      == 等于
      != 不等于
      <> 不等于(3.7版本以上)
    • a = 10
      b = 5
      print(a > b)  # True
      print(a < b)  # False
      print(a >= b)  # True
      print(a <= b)  # False
      print(a == b)  # False
      print(a != b)  # True
      print(a <> b)  # True
      
      

    (二)算术运算符

    • +
      -
      *****
      /
      // 整除(地板除)
      ******
      % 模(取余)
    • a = 4
      b = 2
      print(a + b)  # 6
      print(a - b)  # 2
      print(a * b)  # 8
      print(a / b)  # 2
      print(a // b)  # 2
      print(a ** b)  # 16
      print(a % b)  # 0
      
      

    (三)赋值运算符

    • = 等于
      += 加等于
      -= 减等于
      *= 乘等于
      /= 除等于
      //= 整出等于
      ******= 幂等于
      %= 模等于
    • a = 2
      a += 2  # 等价于:a = a + 2
      a -= 2  # 等价于:a = a - 2
      a *= 2  # 等价于:a = a * 2
      a /= 2  # 等价于:a = a / 2
      a //= 2  # 等价于:a = a // 2
      a **= 2  # 等价于:a = a ** 2
      a %= 2  # 等价于:a = a % 2
      
      

    (四)逻辑运算符

    • and
      or
      not
    1. 优先级:()> not > and > or
    2. 查找顺序:按照优先级从左向右
    3. True 和 False 进行逻辑运算时
      • and:同真为真,其余为假
      • or:同假为假,其余都真
    4. 数字进行逻辑运算时
      • and:前面是0,就是前面;前面不是0,就是后面
      • or:前面是0,就是后面;前面不是0,就是前面
      • 推荐记忆:记一个就行,另一个是反着的
        • or:前面不是0,就是前面
        • 2 or 8 # 2

    (五)成员运算符

    • in
      not in 不在
    • name = "ZXD"
      print("ZXD" in name)  # True
      print("zxd" in name)  # False
      
      

    四、编码初识

    (一)ASCII码

    • 最早的编码,包含数字 + 字母 + 特殊字符
    • 每个字符用一个字节(8位)来表示

    (二)GBK

    • 国标码,涵盖ASCII码,只能中国使用
    • 英文:一个字节(8位)表示
    • 中文:两个字节(16位)表示

    (三)Unicode

    • 万国码,涵盖所有国家语言
    • 每个字符都用四个字节(32位)表示
    • 浪费资源,浪费内存

    (四)UTF-8(最流行的编码集)

    • 可变长度编码
    • 英文:一个字节(8位)表示
    • 欧洲文字:两个字节(16位)表示
    • 中文:三个字节(24位)表示

    (五)单位转换

    • 1字节 = 8位
    • 1Bytes = 8bit
    • 1024Bytes = 1KB
    • 1024KB = 1MB
    • 1024MB = 1GB
    • 1024GB = 1TB
    • 1024TB = 1PB
  • 相关阅读:
    Codeforces 375D Tree and Queries(DFS序+莫队+树状数组)
    HDU 5972 Regular Number(字符串shift
    HDU 5905 Black White Tree(树型DP)
    BZOJ 3675 [Apio2014]序列分割 (斜率优化DP)
    2017 ACM/ICPC Asia Regional Guangxi Online 记录
    2017 ACM/ICPC Asia Regional Beijing Online 记录
    2017 ACM/ICPC Asia Regional Xian Online 记录
    2017 ACM/ICPC Asia Regional Qingdao Online 记录
    django中models字段的联合限制
    redis使用摘要
  • 原文地址:https://www.cnblogs.com/tianlangdada/p/11518576.html
Copyright © 2011-2022 走看看