zoukankan      html  css  js  c++  java
  • 0603 python 基础02

    作业1:ANSI和utf8的区别?
    ASCII是用来表示英文字符的一种编码规范,每个ASCII字符占用1个字节(8bits)。
    可以表示的最大字符数是256,一般只用前128个(最高位为0),其中包括了控制字符、数字、大小写字母和其他一些符号。
    ANSI:系统预设的标准文字储存格式。ANSI是American National Standards Institute的缩写。
    Unicode:世界上所有主要指令文件的联集,包括商业和个人电脑所使用的公用字集。
    UTF-8:UTF意为通用字集转换格式(Universal Character Set Transformation Format),UTF-8是Unicode的8位元格式。

    一句话建议:涉及兼容性考量时,不要用记事本,用专业的文本编辑器保存为不带 BOM 的 UTF-8。
    如果是为了跨平台兼容性,只需要知道,在 Windows 记事本的语境中:
    所谓的「ANSI」指的是对应当前系统 locale 的遗留(legacy)编码。
    所谓的「Unicode」指的是带有 BOM 的小端序 UTF-16。
    所谓的「UTF-8」指的是带 BOM 的 UTF-8。

    GBK 等遗留编码最麻烦,所以除非你知道自己在干什么否则不要再用了。
    UTF-16 理论上其实很好,字节序也标明了,但 UTF-16 毕竟不常用。
    UTF-8 本来是兼容性最好的编码但 Windows 偏要加 BOM 于是经常出问题。

    所以,跨平台兼容性最好的其实就是不用记事本。
    建议用 Notepad++ 等正常的专业文本编辑器保存为不带 BOM 的 UTF-8。

    另外,如果文本中所有字符都在 ASCII 范围内,那么其实,记事本保存的所谓的「ANSI」文件,和 ASCII 或无 BOM 的 UTF-8 是一样的。

    关于字符集(character set)和编码(encoding),某几篇答案中似乎有些混淆。

    对于 ASCII、GB 2312、Big5、GBK、GB 18030 之类的遗留方案来说,基本上一个字符集方案只使用一种编码方案。
    比如 ASCII 这部标准本身就直接规定了字符和字符编码的方式,所以既是字符集又是编码方案;而 GB 2312 只是一个区位码形式的字符集标准,不过实际上基本都用 EUC-CN 来编码,所以提及「GB 2312」时也说的是一个字符集和编码连锁的方案;GBK 和 GB 18030 等向后兼容于 GB 2312 的方案也类似。
    于是,很多人受这些遗留方案的影响而无法理解字符集和编码的关系。

    对于 Unicode,字符集和编码是明确区分的。Unicode/UCS 标准首先是个统一的字符集标准。而 Unicode/UCS 标准同时也定义了几种可选的编码方案,在标准文档中称作「encoding form」,主要包括 UTF-8、UTF-16 和 UTF-32。
    所以,对 Unicode 方案来说,同样的基于 Unicode 字符集的文本可以用多种编码来存储、传输。
    所以,用「Unicode」来称呼一个编码方案不合适,并且误导。

    作者:梁海
    链接:https://www.zhihu.com/question/20650946/answer/15745831
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    image

    作业2:使用文件格式,读入长和宽,计算长方形的面积和周长
    # -*- coding: utf-8 -*-
    # D:python est.py
    length = int(raw_input("Enter length: "))
    width = int(raw_input("Enter "))
    print u"长方形的面积是:", length*width
    print u"长方形的周长是:", (length+width)*2

    执行结果:
    C:Users***>python d:python est.py
    Enter length: 8
    Enter 5
    长方形的面积是: 40
    长方形的周长是: 26

     

    复习
    >>> str=raw_input("请输入字符:")
    请输入字符:今天心情很不错
    >>> print str
    今天心情很不错
    >>> num=int(raw_input("请输入数字:"))
    请输入数字:100
    >>> print num*99
    9900

    python 缩进推荐使用2或4个空格,不推荐Tab

     

    控制流--if 语句
    >>> a=2
    >>> b=1
    >>> if a>b:
    ...   print "a比b大"
    ...
    a比b大
    >>>
    >>> a=1
    >>> b=2
    >>> if a>b:
    ...   print "a>b"
    ...
    >>> str1='a'
    >>> str2='b'
    >>> if str1>str2:
    ...   print "str1>str2"
    ... else:
    ...   print "str1<str2"
    ...
    str1<str2
    >>> a=1
    >>> b="a"
    >>> if a>b:
    ...   print "a>b"
    ... else:
    ...   print "a<b"
    ...
    a<b
    ANSCII

    python中没有switch语句

    把小明的考试成绩作为输入值,并对其成绩进行判断
    >90 打印"小明的成绩是优"
    80<grade<90 打印"小明的成绩是良"

    # -*- coding: utf-8 -*-
    # D:python est.py
    grade=int(raw_input("Enter xiaoming's grade: "))
    if grade>=90:
        print u"小明的成绩是优"
    elif grade>=80 and grade<90:
        print u"小明的成绩是良"
    elif grade>=70 and grade<80:
        print u"小明的成绩是中"
    elif grade>=60 and grade<70:
        print u"小明的成绩是及格"
    else:
        print u"小明的成绩不及格"

    执行结果:
    C:Users***>python d:python est.py
    Enter xiaoming's grade: 91
    小明的成绩是优

    C:Users***>python d:python est.py
    Enter xiaoming's grade: 88
    小明的成绩是良

    C:Users***>python d:python est.py
    Enter xiaoming's grade: 75
    小明的成绩是中

    C:Users***>python d:python est.py
    Enter xiaoming's grade: 66
    小明的成绩是及格

    C:Users***>python d:python est.py
    Enter xiaoming's grade: 50
    小明的成绩不及格

    作业1:输入一个字符作为密码,正确:登录成功;错误,登录失败。

     

    控制流--while 语句

    死循环,Ctrl+C 中断
    a=2
    b=1
    while a>=b:
        print "a>b"

    a=2
    b=1
    while a>=b: #表达式为 True,执行循环体;否则False,不执行循环体
        print "a>b"
        a=a-1
        print u"当前循环中a的值:",a

    执行结果:
    C:Users***>python d:python est.py
    a>b
    当前循环中a的值: 1
    a>b
    当前循环中a的值: 0

     

    猜数游戏--只能猜三次
    等于:猜对了,退出游戏
    大于:猜大了
    小于:猜小了
    猜错三次退出循环

    # -*- coding: utf-8 -*-
    # D:python est.py
    num=25
    count=3
    while not count == 0:
        guess=int(raw_input("Please enter guess: "))
        if guess==num:
            print u"恭喜你猜对了,游戏结束!"
            break
        elif guess>num:
            print u"输入数字偏大,再猜一次吧"
            count -= 1
        else:
            print u"输入数字偏小,再猜一次吧"
            count -= 1
    else:
        print u"只能猜三次,一次都没有猜对,游戏结束!"
    print u"程序执行完毕!"

    执行结果:
    C:Users***>python d:python est.py
    Please enter guess: 33
    输入数字偏大,再猜一次吧
    Please enter guess: 22
    输入数字偏小,再猜一次吧
    Please enter guess: 21
    输入数字偏小,再猜一次吧
    只能猜三次,游戏结束!
    程序执行完毕!

    C:Users***>python d:python est.py
    Please enter guess: 33
    输入数字偏大,再猜一次吧
    Please enter guess: 42
    输入数字偏大,再猜一次吧
    Please enter guess: 25
    恭喜你猜对了,游戏结束!
    程序执行完毕!

    C:Users***>python d:python est.py
    Please enter guess: 25
    恭喜你猜对了,游戏结束!
    程序执行完毕!

  • 相关阅读:
    Build-in Function:abs(),all(),any(),assii(),bin(),issubclass(),bytearray(),isinstance()
    函数及while实例
    提示'HTTP消息不可读'
    python中关于不执行if __name__ == '__main__':测试模块的解决
    python输出测试报告测试成功
    SqlServer——批量插入数据
    网页样式——各种炫酷效果持续更新ing...
    网站部署发布到互联网等整套流程
    如何远程操控别人的电脑?我来教你
    代码生成工具——CodeSmith
  • 原文地址:https://www.cnblogs.com/blueskylcc/p/5527834.html
Copyright © 2011-2022 走看看