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
    恭喜你猜对了,游戏结束!
    程序执行完毕!

  • 相关阅读:
    《玩转.NET Micro Framework 移植基于STM32F10x处理器》内容介绍
    《玩转.NET Micro Framework 移植基于STM32F10x处理器》前言
    《玩转.NET Micro Framework 移植基于STM32F10x处理器》内容介绍
    《玩转.NET Micro Framework 移植基于STM32F10x处理器》微软中国.NET Micro Framework项目组工程师所作之序
    《玩转.NET Micro Framework 移植基于STM32F10x处理器》资源汇总
    《玩转.NET Micro Framework 移植基于STM32F10x处理器》微软中国.NET Micro Framework项目组工程师所作之序
    《玩转.NET Micro Framework 移植基于STM32F10x处理器》前言
    Windows、Linux、ARM、Android、iOS全平台支持的RTMP推流组件libEasyRTMP库接口调用说明
    简单高效易用Windows/Linux/ARM/Android/iOS平台实现RTMP推送组件EasyRTMPAndroid MediaCodec硬编码流程介绍
    RTSP网络监控摄像头如何实现Windows、Linux、ARM、Android、iOS全平台支持的拉RTSP流推出RTMP直播流?
  • 原文地址:https://www.cnblogs.com/blueskylcc/p/5527834.html
Copyright © 2011-2022 走看看