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
posted on 2019-09-14 10:52  天狼大大  阅读(235)  评论(0编辑  收藏  举报