zoukankan      html  css  js  c++  java
  • python初步学习

    一、字符编码

    ASCII表是是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。由于中国也需要自己的语言,但剩下的128个表不能满足中国汉字的需求,所以采用了索引的方法,建立了中国字符编码即简体中文的GB2312和用于繁体中文的big5。

    后来随着发展汉字库也有所增加,1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

    从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

    有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。

    这种情况在国外也通用,所以造成了字符编码混乱,所以国际为了同一标准,确定了UTF-32,它占用4个字节,对于某些国家(如美国)就会多消耗3倍的存储,所以utf-32一直优化到utf-16最后至utf-8。

    UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存(之前GBK等编码汉字是2个字节保存)。

    所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:

    #!/usr/bin/env python
      
    print "你好,世界"

    改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
      
    print "你好,世界"

    二、用户输入

    使用input()函数可以从键盘获取值,它的返回值类型是str。

    使用getpass.getpass()可以从键盘得到数据且不可被显示屏看到。

    三、函数初始

    str[]相当于C语言中的数组,即python的列表。

    str.index("str1"),在列表str中找str1字符串并返回下标

    str.count("str1")在列表str中统计str1字符串出现的次数

    type(str)显示str的数据类型

    str.insert(num,str1)在列表str的下标为num出插入str1

    str.append(str1)在列表str最后追加str1

    str.pop(num)删除下标为num的内容,默认删除最后一个

    str.remov('str1')删除内容是str1

    del str[num]删除指定下表额内容

    str.isdigit()判断str是否全是数字

    str[:]切片,前取后不取

    练习一

    跳出多层循环 ,三层循环, 最里层,直接跳出3层

    key=0
    for i in range(3):
        if key=='y':
            break
        else:
            print(i,"first loop")
        for j in range(4):
            if key == 'y':
                break
            else:
                print(j,"second loop")
            for k in range(5):
                key = input('do you want to break the all loop? y/n')
                if key=='y':
                    break
                else:
                    print(k,"third loop")

    练习二

    程序:购物车程序

    需求:

    1. 启动程序后,让用户输入工资,然后打印商品列表
    2. 允许用户根据商品编号购买商品
    3. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 
    4. 可随时退出,退出时,打印已购买商品和余额
    good =['phone','shoes','clothes','headset','apple','computer',]
    price=[5000,200,150,2000,2,8000]
    money = input("please your wages")
    if money == 'out':
        print("You didn't buy anthing and thank for your shopping")
        exit()
    else:
        i=0
    while i<len(good):
        print(i,good[i],price[i])
        i+=1
    num = 0
    sc=[]
    money=int(money)
    key = 0
    while True:
    
        if key == 1:
            print('you have ben bought these goods')
            j=0
            while j < len(sc):
                print(sc[j])
                j += 1
            print('you have ',money,'left')
            exit()
        else:
            buy = input("please choose your goods")
    
            if buy=="out":
                key = 1
                continue
            elif buy.isdigit():
                buy = int(buy)
                if buy<5 and buy >= 0:
                    if money>=price[buy]:
                        sc.insert(num,good[buy])
                        money=money-price[buy]
                        num =num + 1
                    else:
                        print("you don't have enough money")
                        continue
                else:
                    print("no this goods number")
                    continue
            else :
                if buy in good:
                    if money < price[good.index(buy)]:
                        print("you don't enough money")
                        continue
                    else:
                        money=money-price[good.index(buy)]
                        sc.insert(num, buy)
                        num =num+ 1
                else:
                    print("not this good")
                    continue
  • 相关阅读:
    Servlet 06: jar包引入和web配置文件创建
    Servlet 05: Servlet生命周期方法
    Servlet 04: 什么是重定向
    Servlet 03: 通过xml配置文件配置servlet访问路径
    080 面向过程编程
    079 内置函数
    078 匿名函数
    077 递归
    076 生成器
    075 字典生成式
  • 原文地址:https://www.cnblogs.com/drchen/p/6637780.html
Copyright © 2011-2022 走看看