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- -*- 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")
练习二
程序:购物车程序
需求:
- 启动程序后,让用户输入工资,然后打印商品列表
- 允许用户根据商品编号购买商品
- 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
- 可随时退出,退出时,打印已购买商品和余额
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
python初步学习的更多相关文章
- python 初步学习
疑惑1:windows下的python 如何设置显示汉字 推荐几个学习网址,也方便自己以后查看: http://pmghong.blog.51cto.com/3221425/d-10 www.w3c ...
- python初步学习-import和datetime模块
模块 一个完整大型的python程序是由模块和包的形式组织起来的,可见模块在python中的重要性.模块是一种组织型式,它许多有关联(关系)的代码组织放到单独的独立文件中.简单的说,可以把模块理解为一 ...
- python初步学习-练习题
1.实现1-100的所有的和 #!/usr/bin/env python #encoding:utf8 '''实现1-100的所有的和 1. 使用列表解析获取0-100的列表 2. 使用reduce内 ...
- python初步学习-Python模块之 re
re 正则表达式 python正则表达式在线检验网站 python re正则表达式语法 匹配字符 语法 解释 表达式 匹配实例 . 匹配任意除"\n"以外的任何字符 a.c abc ...
- python初步学习-python 模块之 json
json 模块 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写.一般API返回的数据大多是 JSON.XML,如果返回JSON的话,将获取 ...
- python初步学习-python模块之 os
os os 模块在运维工作中是很常用的一个模块.通过os模块调用系统命令.os模块可以跨平台使用. 在 import os的时候,建议使用import os而非from os import *.这样可 ...
- python初步学习-python模块之 logging
logging 许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在python中,我们不需要第三方的日志组件,python为我们提供了简单易用.且 ...
- python初步学习-异常
异常 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在python无法正常处理程序时就会发生一个异常. 异常是python对象,表示一个错误. 当python脚本 ...
- python初步学习-面向对象之 类(二)
方法重写 如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法: #!/usr/bin/env python #coding:utf8 class Parent: def myMeth ...
- python初步学习-面向对象之类(一)
python 面向对象 python 从设计之初就已经是一门面向对象的语言,正因为如此,在python中创建一个类和对象是很容易的. 对象对象奇数简介 类(Class): 用于描述具有相同的属性和方法 ...
随机推荐
- linux 文本文件显示行数
一般的我们在使用linux编辑器编辑文本文件的时候是不会像其他编程软件一样显示行数 临时方法: 在命令模式下输入:set nu或者:set number都可以为vi设置行号,如果要取消的话,则输入:s ...
- Failed to read artifact descriptor for xxx:jar
在MyEclipse中执行Maven的install命令时,报“Failed to read artifact descriptor for xxx:jar ”的错误.这可能是在下载过程中文件出现错误 ...
- MySort的实现
代码: package week12; import java.util.*; import java.lang.Integer; public class MySort{ public static ...
- Using FileUpload
Using FileUpload FileUpload can be used in a number of different ways, depending upon the requiremen ...
- Servlet的常见错误
Servlet常见的错误: 1.404错误:资源未找到 原因一:在请求地址中的servlet的别名书写错误. 原因二:虚拟机项目名称拼写错误. 2.500错误:内部服务器错误 错误一: java.la ...
- spring boot shiro redis整合基于角色和权限的安全管理-Java编程
一.概述 本博客主要讲解spring boot整合Apache的shiro框架,实现基于角色的安全访问控制或者基于权限的访问安全控制,其中还使用到分布式缓存redis进行用户认证信息的缓存,减少数据库 ...
- webpack的安装和运行
webpack依赖于node,为了可以正靠运行,必须依赖node环境.node环境为了可以真正的执行很多代码,必须其中包含各种依赖的包npm工县(node packages manager)所以在进行 ...
- 1、maven的下载,安装,配置
下载 1.maven官方下载地址: http://maven.apache.org/download.cgi 进入官网: 下载各历史版本官方地址: https://archive.apache.org ...
- PHP操作json
输出json文件中文处理 <?php $json_array = array(); // 1.转换为json字符串(不自动转换为unicode编码) if (version_compare(PH ...
- 【工具安装】BurpSuite 安装教程
日期:2019-07-14 17:23:53 介绍:安装 JDK,配置 JDK 的环境变量.安装 BurpSuite,抓包 0x01. 安装 JDK 安装 JDK BurpSuite 需要 JAVA ...