前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python全栈学习_day002知识点

Python全栈学习_day002知识点

作者头像
py3study
发布2020-01-19 09:58:30
2810
发布2020-01-19 09:58:30
举报
文章被收录于专栏:python3python3

今日大纲:

1. while循环
2. 格式化输出
3. 运算符
4. 编码初识

1. while循环

    - while 无限循环:
    while True:     # 死循环
        print('大悲咒')
        print('可不可以')
        print('青春')
        print('两只老虎')
        print('盗将行')
    - while 循环的结构:
    while 条件:
        循环体
- 如何让循环终止
        1. 改变条件(标志位[flag]的概念)
        flag = True
        while flag:
            print('大悲咒')
            print('可不可以')
            print('青春')
            flag = False
            print('两只老虎')
            print('盗将行')
        2. 加入关键字break,终止循环
        break:循环中,只要遇到break,立马结束循环
        while True:
            print(111)
            print(222)
            break
            print(333)
            print(444)
        print(123)
        结果:
            111
            222
            123
        
    - 用while循环输出1-100
    方法一:
    flag = True
    count = 1
    while flag:
        print(count)
        count += 1
        if count == 101:
            flag = False
    方法二:
    count = 1
    while count < 101:
        print(count)
        count += 1
        
    - 用while,break打印1+2+3+...+100的结果
    count = 1
    sum = 0
    while True:
        sum += count
        count += 1
        if count == 101:
            break
    print(sum)
    
    - continue:结束本次循环,继续下次循环
    while True:
        print(111)
        print(222)
        continue
        print(333)
    
    - while else 结构
    如果while循环被break打断,则不执行else代码
    count = 1
    while count < 4:
        print(count)
        count += 1
    else:
        print(666)
    print(222)
    结果:
    1
    2
    3
    666
    222

    count = 1
    while count < 4:
        print(count)
        count += 1
        if count == 3:break
    else:
        print(666)
    print(222)
    结果:
    1
    2
    222
应用场景:
    1. 验证用户名密码,重新输入这个功能需要while循环
    2. 无限次的显示页面,无限次的输入...

2. 格式化输出

   制作一个模板,某些位置的参数的动态的,像这样就需要用格式化输出
    字符串的动态替换
    第一种方式:
    name = input('请输入姓名:')
    age = input('请输入年龄:')
    sex = input('请输入性别:')
    # % 为占位符;s:str,数据类型为字符串;d: digit,数据类型为数字
    msg = '你的名字是%s,你的年龄是%s,你的性别是%s' % (name, age, sex)
    print(msg)
    
    第二种方式:
    name = input('请输入姓名:')
    age = input('请输入年龄:')
    sex = input('请输入性别:')
    msg = '你的名字是%(name1)s,你的年龄是%(age1)s,你的性别是%(sex1)s' % {'name1':name, 'age1':age, 'sex1':sex}
    print(msg)
    小知识点:在格式化输出中,只想单纯的表示一个%时,应该用两个%表示
    name = 'BlameK'
    age = 23
    msg = '我叫%s,今年%s,我的学习进度1%%' % (name, age)
    print(msg)
    结果:
    我叫BlameK,今年23,我的学习进度1%

3. 运算符

    算术运算:
    +:加
    -:减
    *:乘
    /:除
    %:取余,返回除法的余数
    **:幂
    //:取整除 - 返回商的整数部分
    
    比较运算:
    ==:等于 - 比较对象是否相等
    !=:不等于 - 比较两个对象是否不相等
    <>:不等于
    >:大于
    <:小于
    >=:大于等于
    <=:小于等于
    
    赋值运算:
    =:简单的赋值运算符
    +=:加法赋值运算符
        count = count + 1  简写  count += 1
    -=:减法赋值运算符
    *=:乘法赋值运算符
        count = count * 5  简写  count *= 5
    /=:除法赋值运算符
    %=:取模赋值运算符
    **=:幂赋值运算符
    //=:取整除赋值运算符
    
    逻辑运算:
    and:布尔‘与’
    or:布尔‘或’
    not:布尔‘非’
    优先级(从高到低):
    ()、not、and、or
    第一种情况:前后条件为比较运算
    print(1 < 2 or 3 > 1)   True
    print(1 < 2 and 3> 4)   False
    print(1 < 2 and 3 > 4 or 8 < 6 and 9 > 5 or 7 > 2)  True
    print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)  False
    print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)    False

    第二种情况:前后两边的条件为数值
    x or y if x is True,return x
    print(1 or 2)   1
    print(0 or 2)   2
    print(0 or 0)   0
    print(-1 or 3)  -1
    and 和 or相反
    print(1 and 2)  2
    print(0 and 2)  0
    print(2 and -1) -1
    
    print(1 or 3 and 5 or 4)    1
    print(0 or 3 and 5 or 4)    5
    变态面试题(总结规律):
    print(1 > 2 or 3 and 4 < 6)     True
    print(2 or 3 and 4 < 6)     2
    
    补充:
    int --> bool
    0对应的bool值为False,非0都是True
    print(bool(100))    True
    print(bool(-1))     True
    print(bool(0))      False
    print(int(True))    1
    print(int(False))   0
应用场景:
    1. if while 等条件判断(数据库,Django ORM复杂查询)
    2. 面试时

4. 编码初识

    尹宁
    太白:今晚吃鸡!
    今:0101
    晚:010111
    吃:0101 00000 01
    鸡:011
    010101011101010000001011
    上面的不合理,应该有断位
    固定8位:
    今:0101 0001
    晚:0101 1101
    吃:0101 0001
    鸡:0111 1100
    01010001 01011101 01010001 01111100
    断位,要有一个密码本:记录的铭文与二进制的对应关系
 ASCII:最初版本的密码本:所有的英文字母,数字,特殊字符。
        最初:一个字符(7位) 000 0001
        后来优化:一个字符(8位) 0000 0001
            (最左一位全是0)
        A:0100 0001 65
        a:0110 0001 97
        c:0110 0011 99
        8位 == 一个字节
    对于ASCII码(1个字符 == 1个字节)来说:
        'Hello Laddy'   11个字符,11个字节,88位
    字符:你能看到的这个内容的最小单元。
    unicode: 万国码,将所有国家的语言文字都写入这个密码本
        起初:1个字符 == 16位 == 2个字节
            A:01000001 01100001
            中:01100011 01100001
            但这样仍然表示不完所有中文
        改版:1个字符 == 32位 == 4个字节
            中:01100011 01100001 01000001 01100001
        浪费资源,占空间
    8位永远等于一个字节
    utf-8:最少用8位去表示一个字符。
           A:01000001   一个字节
        欧洲:01100011 01100001    两个字节
        中文:01100011 01100001 01000001   三个字节
        'old男孩'     9个字节
    gbk:国标,只包含中文、英文(英文字母、数字、特殊字符)
           A:01000001   一个字节
        中文:01100011 01100001    两个字节

    gbk、utf-8之间的转换?(下次讲解)
        必须通过unicode进行转换
8 bit(位) == 1 bytes(字节)[1 B]
    1024 bytes(1024 B) == 1 KB
    1024 KB == 1 MB
    1024 MB == 1 GB
    1024 GB == 1 TB
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档