Py修行路 python基础(二)变量 字符 列表
变量
容器
变量名 标记 数据的作用
字符编码
二进制位 = bit
1个二进制位是计算机里的最小表示单元
1个字节是计算机里最小的存储单位
8bits = 1Byte =1字节
1024Bytes = 1KB =1024 字节
1024KB = 1MB = 100万字节 =100万字符 =1兆
1024MB = 1GB = 一部高清电影短片,1080p 20分钟,
1024GB = 1TB
1024TB = 1PB
ASCII 256 每一个字符占8位
GB2312 1980 67xx
GBK1.0 1995 21000
GB18030 2000 27000
unicode 万国码
utf-32 = 4字节
utf-16 = 2字节
utf-8 = 8bits 可变长编码
英文一个字节,所有的中文3个字节
欧洲 2个字节
注释:#或是''' '''
单引号和双引号没有任何区别,只适用于单行
三个单或是双引号,适用于 多行字符串 或 多行注释。
数据类型
str
数字类型
int 整型
long 长整型
float 浮点型
复数
bool 布尔值
True 真
False 假
字符
字符常用功能 字符串是 %s;整数 %d;浮点数%f
移除空白
name = ' Alex Li '
print(name)
print(name.strip()) #把一个字符串中的空行脱掉
分割
print (name.split())#把一个字符串 按空格分割成 列表
长度
len(name) # 长度判断
索引
切片
print(name1.index("h")) index 索引
正着 print(name1[0:8]) #切片
倒着 print(name1[-6:]) #切片 默认顺序从左往右 顾头不顾尾
跳着切 print(name1[0::2]) #2 表示步长
列表
name = [‘’,‘’,‘’]
print(type(names))
print(name[-1]) 从列表中提取某个数据 切片
print(name.index("人名")) #返回元素的索引下标,用于众多数据中查找
print(name.count("人名")) #统计
name.append("光头") #追加
指定位置添加(插入) # insert 插入
name.insert(4,“陈涛”) 前边写位置,后边写插入内容
name.pop(4) #删除 以索引 到的 位置定位 默认删除最后一个
name.remove("李智") #删除第一个李智 元素
del name[1] # 删除第一个位置上的值
改 name[index] = NewValue #新的值
names[names.index("骗子")] = “大骗子”
break 跳出本层循环
continue #跳出本次循环
for 及 while循环,后边的else条件,是当循环正常结束之后,才后走else条件!
作业1
跳出多层循环 ,三层循环, 最里层,直接跳出3层, exit()
代码:
#!usr/bin/env python
# _*_ coding:utf-8 _*_
# 跳出多层循环 ,三层循环, 最里层,直接跳出3层!!!
count = 0
running = True #定义一个变量,赋值为True!
while running: # 第一层,while循环
print("number---->",count) #打印值
count +=1 #每打印一次自加1
if count == 5: #当值等于5时,进行第二层循环
for i in range(5):
print("i---->",i) #输出i的值
else: #if i == 4: 当i的值为4时,for循环结束,进行下一层循环
for j in range(5): #进行第三层循环
print("j---->",j) #打印j的值
else: #for循环结束时,打印
print("exit")
running = False #退出整个循环!
作业2
购物车程序
购物要求:
python shopping.py
input your salary: 5000
你可以买下面的东西:
1. iphone 5800
2. coffee 30
3. book 50
4. condom 90
>>: 1
买不起,打印差多少
>>:2
放入购物车,扣钱,同时打印余额。。。 4970
>>:3
...
>>:4
>>:q
您买了下面的东西
coffee 30
book ..333
你还有多少前 3000
bye.
代码如下:
#!usr/bin/env python
# _*_ coding:utf-8 _*_ good_list=[["iphone",5800],["bike",1000],["coffee",30],["book",35],["pen",3]] # 商品列表
shopping_car=[] #购物车 print("welcome!")
salary = int(input("please input your salary:")) #输入工资
running = True
while running:
print("you can buy something in the list:") #打印商品列表
print("--------------------------------")
for i in range(len(good_list)):
good_name = good_list[i][0]
good_price = good_list[i][1]
print(i+1,good_name,good_price)
print("--------------------------------")
user_choice = input("what are you want to buy?(check=c;quit=q)""please input serial number:") #输入选择
if user_choice.isdigit(): #判断是否是数字isdigit 网上查的判断
user_choice = int(user_choice)-1#是数字的话
if user_choice < len(good_list): #先判断,输入的数字小于商品序号
good_choice = good_list[user_choice] #客户选择的商品
if good_choice[1] <= salary: # 判断商品价钱和工资的关系
shopping_car.append(good_choice) #将商品加入购物车
salary -= good_choice[1] #买完东西之后的余额
for i in range(len(shopping_car)):
print("you buy:%s" %shopping_car[i]) #打印购物车中的东西
print("you balance money is:%s" %salary)#打印余额
print("--------------------------------")
else:
print("!!!!you not have so money!!!!") #钱不够,没法购买!
print("you balance money is:%s"%salary) #提示有多少钱!
if len(shopping_car) > 0: #判断是否买了东西,买了就打印,没买就不打印
print(shopping_car)
print("--------------------------------")
#break #没钱买了还扯蛋!!!
else:
print("we not have this good,please choice again!")#输入的数字大于序列号,打印没有这个商品
elif user_choice =="q": #输入“q”退出,打印购买的东西和余额
for item in shopping_car:
print(item)
print("you balance money is:%s" %salary)
print("--------------------------------")
running = False
elif user_choice =="c": # 输入"C" 选择 继续购物
print("you balance money is:%s" %salary)
print("--------------------------------")
else:
print("Incorrect input,please input again!!!") #错误的输入
Py修行路 python基础(二)变量 字符 列表的更多相关文章
- Py修行路 python基础 (二十三)模块与包
一.模块 1)定义: 模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2)为何要用模块: 退出python解释器然后重新进入,那之前定义的函数或者变量都将丢失,因 ...
- Py修行路 python基础 (二十五)线程与进程
操作系统是用户和硬件沟通的桥梁 操作系统,位于底层硬件与应用软件之间的一层 工作方式:向下管理硬件,向上提供接口 操作系统进行切换操作: 把CPU的使用权切换给不同的进程. 1.出现IO操作 2.固定 ...
- Py修行路 python基础 (十二) 协程函数应用 列表生成式 生成器表达式
一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._next_() 取下一个值 优点: 1.提供了 ...
- Py修行路 python基础 (二十)模块 time模块,random模块,hashlib模块,OS及sys模块
一.前提介绍: 可以开辟作用域的只有类,函数,和模块 for循环 if,else: 不能开辟自己的作用域 避免程序复用和重复调用,将这些写到一个.py文件中,做成一个模块,进行调 ...
- Py修行路 python基础 (二十一)logging日志模块 json序列化 正则表达式(re)
一.日志模块 两种配置方式:1.config函数 2.logger #1.config函数 不能输出到屏幕 #2.logger对象 (获取别人的信息,需要两个数据流:文件流和屏幕流需要将数据从两个数据 ...
- Py修行路 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!
三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写:16进制 标志:BH为后缀或是0x为前缀hex() 转成16进制 元组 跟列表是 ...
- Py修行路 python基础 (二十二)异常处理
异常处理 一.错误和异常 程序中难免出现错误,而错误分为两种:语言异常和逻辑异常 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) for i in range ...
- Py修行路 python基础 (二十四)socket编程
socket编程 一.客户端/服务端架构 客户端/服务端架构 即C/S架构,包括:1.硬件C/S架构,2.软件C/S架构. 互联网中处处都是C/S架构,学习socket 就是为了完成C/S架构的开发. ...
- Py修行路 python基础 (十三)匿名函数 与 内置函数
一.匿名函数 1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序. 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是 ...
随机推荐
- ArcGIS API For Silverlight使用在线地图的多种方法总结
引自:http://www.cnblogs.com/meimao5211/p/3283969.html ArcGIS API For Silverlight使用在线地图的多种方法总结 本人也正在学习A ...
- GitLab使用总结[转]
http://blog.csdn.net/huaishu/article/details/50475175 GitLab使用总结
- 简短的perl程序
简短的perl程序能够实现大功能. perl是如何做到的呢? 1. 默认变量 如果没有向函数提供参数值,则默认参数为$_: 如果没有变量用于接收一个表达式的值,则默认接收变量为 ...
- 转 IOS动态类型isKindOfClass, isMemberOfClass
对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断对象类型 -(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例 -(BOOL) is ...
- 一些开源搜索引擎实现——倒排使用原始文件,列存储Hbase,KV store如levelDB、mongoDB、redis,以及SQL的,如sqlite或者xxSQL
本文说明:除开ES,Solr,sphinx系列的其他开源搜索引擎汇总于此. A search engine based on Node.js and LevelDB A persistent, n ...
- ControllerDescriptor的认识
ControllerDescriptor类主要包含了对ASP.NET MVC中的Control的元数据的解析,在MVC的Model绑定以及数据处理过程中经常会遇到ControllerDescripto ...
- linux下vim对于意外退出的文档的再次开启
转载的: 1.对于同一个文件如果上次已经打开,而未关闭的情况下,又打开该文件进行编辑时,会出现如下提醒: 这是由于已经打开但未闭关的文件,会在其目录下出现一个.swp的文件,由于是属于隐藏文件,可以用 ...
- LeetCode OJ:Spiral MatrixII(螺旋矩阵II)
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ...
- LeetCode OJ:Maximum Subarray(子数组最大值)
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- Java.lang包的接口解读
Java.lang包中提供了八个接口: 1.Appendable 能够被追加 char 序列和值的对象.如果某个类的实例打算接收来自 Formatter的格式化输出,那么该类必须实现 Appendab ...