zoukankan      html  css  js  c++  java
  • day3笔记

    一、内容回顾  

    1.break:停止当前循环,后面的程序不会运行,跳出循环。

      跳出while循环:1,改变条件。2.break
      
      continue:结束本次循环,继续下一次循环。

    2.格式化输出:%%可以在格式化中打印% 

    二、作业讲解

    #-*- encoding:utf-8 -*-
    __author__ = 'Administrator'
    #5,写代码计算1-2+3....+99除了88以外所有数的和。
    
    # count = 1
    # sum = 0
    # while count < 100:
    #     if count % 2 == 1:
    #         sum = sum + count
    #     elif count == 88:
    #         count += 1
    #         continue
    #     else:
    #         sum = sum - count
    #     count += 1
    # print(sum)
    '''
    6,用户登录(三次机会)并且每次输错时显示剩余登录机会(用到字符串格式化。)
    第六题完成的同学可做升级版:
    当剩余机会为0时,可以询问用户是否在试试,如果用户同意在尝试,那就将在给他三次机会,可一直继续。
    '''
    username = "taibai"
    password = '123'
    i = 0
    while i < 3:
        name = input('请输入你的用户名:')
        pwd = input('请输入你的密码:')
        if username == name and password == pwd:
            print('您登录成功')
            break
        else:
            print('登录失败,您还有%d次登录机会'%(2-i))
            if (2-i) == 0 :
                result = input('是否还想在试试?Yes')
                if result == 'Yes':
                    i = 0
                    continue
        i += 1
    else:print('要不要脸你')
    day2作业

    三、初始编码

      ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

      为了容纳更多国家的语言文字,诞生了unicode ,它用两个字节表示,事实上Unicode对汉字支持不怎么好,这也是没办法的, 简体和繁体总共有六七万个汉字,而UCS-2最多能表示65536个,才六万 多个,所以Unicode只能排除一些几乎不用的汉字,好在常用的简体汉字 也不过七千多个,为了能表示所有汉字,Unicode也有UCS-4规范,就是用 4个字节来编码字符。

      升级版 utf-8 一个中文 3个字节去表示。

      gbk国内使用,一个中文用2个字节。gbk也在不同的发展扩展中

    总结:

    ASCII:一个Bytes代表一个字符(英文字符/键盘上的所有其他字符),1Bytes=8bit,8bit可以表示0-2**8-1种变化,即可以表示256个字符
    
    ASCII最初只用了后七位,127个数字,已经完全能够代表键盘上所有的字符了(英文字符/键盘的所有其他字符),后来为了将拉丁文也编码进了ASCII表,将最高位也占用了
    
    #阶段二:为了满足中文和英文,中国人定制了GBK
    GBK:2Bytes代表一个中文字符,1Bytes表示一个英文字符
    为了满足其他国家,各个国家纷纷定制了自己的编码
    日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里
    
    #阶段三:各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。如何解决这个问题呢???
    
    #!!!!!!!!!!!!非常重要!!!!!!!!!!!!
    说白了乱码问题的本质就是不统一,如果我们能统一全世界,规定全世界只能使用一种文字符号,然后统一使用一种编码,那么乱码问题将不复存在,
    ps:就像当年秦始皇统一中国一样,书同文车同轨,所有的麻烦事全部解决
    很明显,上述的假设是不可能成立的。很多地方或老的系统、应用软件仍会采用各种各样的编码,这是历史遗留问题。于是我们必须找出一种解决方案或者说编码方案,需要同时满足:
    #1、能够兼容万国字符
    #2、与全世界所有的字符编码都有映射关系,这样就可以转换成任意国家的字符编码
    
    这就是unicode(定长), 统一用2Bytes代表一个字符, 虽然2**16-1=65535,但unicode却可以存放100w+个字符,因为unicode存放了与其他编码的映射关系,准确地说unicode并不是一种严格意义上的字符编码表,下载pdf来查看unicode的详情:
    链接:https://pan.baidu.com/s/1dEV3RYp
    
    很明显对于通篇都是英文的文本来说,unicode的式无疑是多了一倍的存储空间(二进制最终都是以电或者磁的方式存储到存储介质中的)
    
    于是产生了UTF-8(可变长,全称Unicode Transformation Format),对英文字符只用1Bytes表示,对中文字符用3Bytes,对其他生僻字用更多的Bytes去存
    
    
    #总结:内存中统一采用unicode,浪费空间来换取可以转换成任意编码(不乱码),硬盘可以采用各种编码,如utf-8,保证存放于硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性。
    字符编码

    四 、运算符

      and 且,前后为真才为真。or 或,有一为真,就为真。not 非。取反。

    print(3 > 4 and 2 <3) F
    print(3 > 4 or 2 < 3) T
    print(3 > 2 and 2 <4) T
    print(3 > 4 or 2 > 3) F
    print(not True) F
    print(not False) T
    print(not 3 > 4) T

    优先级:()>not>and>or
    同等优先级条件下,从左至右依次计算。
    print(4 > 3 or 4 < 3 and 1!=1)
    print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1)
    print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)
    ps:F or F or 9<8                F
    print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)
    PS :F or F or 7<6               F
    print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)
    PS:F or F or 7<6             F

    ps :
    int与bool值之间的转换。
    1,bool ----> int
    a = int(True)
    b = int(False)
    print(a,b)
    int ---> bool
    a = bool(413456)
    b = bool(6.5)
    c = bool(0)
    d = bool(-1)
    print(a,b,c,d)
    x or y 如果 x 为真,则值为x,否则为y
    '''
    print(4 or 3)
    print(2 or 3)
    print(1 or 3)
    print(0 or 3)
    print(-1 or 3)
    '''
    x and y 如果 x 为真,则值为y,否则为x
    '''
    print(4 and 3)
    print(2 and 3)
    print(1 and 3)
    print(0 and 3)
    print(-1 and 3)
    '''

    print(0 and 3 or 4 or 1 or 2)
    print(3 or 2>1) 3
    print( 2>3 or 3)
    print( 2>2 or 0)
    print( 2>3 or 3)
    in 某个字符串或者其他数据类型中是否含有某个字符串
    in not in
    s1 = 'abcd'
    print('a' in s1)
    print('ag' in s1)
    print(1 and 'a' in s1)

  • 相关阅读:
    Django的FBV和CBV
    爬虫-----selenium模块自动爬取网页资源
    python摸爬滚打之day33----线程
    python摸爬滚打之day032 管道 数据共享 进程池
    python摸爬滚打之day030----进程
    爬虫重复请求超时
    指定页面刷新时间前端
    requests post请求,加上会话功能 以及url 编码问题
    爬虫常用mysql
    python操作excel以及word文档,pdf文档
  • 原文地址:https://www.cnblogs.com/zjchao/p/7701095.html
Copyright © 2011-2022 走看看