模块
Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的。
sys
# Author:zhao kang
import sys
int(sys.argv)
#输出
$ python test.py helo world
['test.py', 'helo', 'world'] #把执行脚本时传递的参数获取到了
os
# Author:zhao kang
import os
os.system("df -h") #调用系统命令
1、数字
2 是一个整数的例子。
长整数 不过是大一些的整数。
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数,数学中表示复数是什么?。
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
float(浮点型)
浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
complex(复数)
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
注:Python中存在小数字池:-5 ~ 257
2、布尔值
真或假
1 或 0
3、字符串
"hello world"
万恶的字符串拼接:
python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
字符串格式化输出
PS: 字符串是 %s;整数 %d;浮点数%f
字符串常用功能:
- 移除空白
- 分割
- 长度
- 索引
- 切片
4.三元运算
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
5.列表
1 names=["张三","李四","王二","麻子"] 2 names.append("李明")#append在列表最后面追加一个值 3 names.insert(1,"赵康")#insert 有两个参数 第一个参数self 插入的位置 第二个是插入的值 4 names[2]="李迪" #用下标修改在列表中的位置 5 #删除NO.1 6 names.pop(1)#用下标删除列表的值 7 #删除NO.2 8 del names[1] 9 #删除NO.3 10 names.remove("张三") 11 12 print(names)#切片 13 14 print(names.index("麻子"))#查找麻子在列表中的索引 15 print( names[names.index("麻子")] )#查找列表中的麻子 16 print(names.count("麻子"))#统计列表中有多少个麻子 17 names.clear()#清除列表 18 names.reverse()#列表倒序 19 names.sort()#排序 20 names2=[1,2,3,4] 21 names.extend(names2)#相当于SQL里面的LEFT JOIN extend(合并的意思) 22 del names2#删除变量 23 #多成列表 24 import copy 25 name3=["AAA","BBB",["QQQ","WWW"],"CCC","DDD"] 26 27 name4=copy.deepcopy(name3)#完全COPY 28 print(name3) 29 print(name4) 30 31 name3[1]="aaa" 32 name3[2][0]="qqq" 33 print(name3) 34 print(name4) 35 36 37 38 #列表循环 39 40 for i in name3: 41 print(i) 42 #切片拓展 43 print(name3[0:-1:2])# 等于print(name3[::2])在列表中0 或者-1可以不用写
6.元祖
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
语法
names = ("张三","李四","王二")
它只有2个方法,一个是count,一个是index,完毕。
7.复习
程序练习
请闭眼写出以下程序。
程序:购物车程序
需求:
启动程序后,让用户输入工资,然后打印商品列表
允许用户根据商品编号购买商品
用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
可随时退出,退出时,打印已购买商品和余额
代码:
1 # Author:zhao kang 2 all_Shopping=[ 3 ("Iphon",6000), 4 ("Mac Pro",12000), 5 ("Wacth",2100), 6 ("Book",80), 7 ("Dog",1500), 8 ("Cat",800) 9 ]#创建列表保存商品 10 Shopping_list=[] #临时列表用于保存数据 11 Wages=input("请输入工资:")#让用户输入工资 12 if Wages.isdigit():#输入的工资如果是int类型就进入判断语句,否则反之 13 Wages=int(Wages)#将工资转化为int类型 14 while True:#死循环,一直打印商品 15 for index,i in enumerate(all_Shopping):#enumerate获取list下标 16 print(index,i) 17 Shopping=input("请选择商品编号:")#让用户输入商品编号 18 if Shopping.isdigit(): 19 Shopping=int(Shopping) 20 if Shopping<len(all_Shopping) and Shopping>=0:#判断输入的商品是否在list中 21 P_item=all_Shopping[Shopping]#通过下标去找商品 22 if P_item[1]<=Wages: #买的起 23 Shopping_list.append(P_item) 24 Wages-=P_item[1] 25 print("商品%s已经加入购物车,你的余额是 \033[31;1m %s\033[0m"%(P_item,Wages)) 26 else: 27 print("\033[41;1m你的余额只剩%s,买个锤子啊\033[0m"%(Wages)) 28 else: 29 print("改商品%s不存在,请选择商品"%Shopping) 30 31 32 33 elif Shopping=="q": 34 print("-------已经购买的商品列表-------") 35 for p in Shopping_list: 36 print(p) 37 print("你的余额是%s"%Wages) 38 exit() 39 40 else: 41 print("错误选项") 42 else: 43 print("请输入正确的工资")
8.字符串操作
1 name="zhaokang" 2 name.capitalize() #首字母大写 3 name.count("a")#统计有几个相同的值,比如说“a”打印出两个 4 name.center(50,"-") 5 #第一个参数为多少个字符,不够用-代替然后把name居中显示 6 #效果 ---------------------zhaokang--------------------- 7 name.endswith("g")#判断字符串以什么结尾,返回Ture 或 false 8 name.expandtabs() 9 print(name.find())#找下标 10 #如print(name[name.find("h"):3]) 11 name.format() 12 #列子 13 name="my name is {name} and {year} " 14 name.format(name="zhao kang " ,year=12)#格式化字符串 15 name.format_map() 16 #列子 17 name="my name is {name} and {year} " 18 name.format({'name':'zhao kang' ,'year':12}) 19 20 print("12".isdigit()) #判断是否为整数 21 print("12as".isalnum()) #判断是否为阿拉伯数字和字母. 22 print("aa".isalpha())#判断是否为纯英文字符 23 print("3.14".isdecimal())#判断是否为纯英文字符 24 print("_a".isidentifier())#判断是否为合法的变量名 25 print("a".islower())#判断是否为小写 26 print("a".isspace())#判断是否为空格 27 print("My Name is".istitle())#判断依据为每个首字母大写 28 print("MY".isupper())#判断是否为大写 29 print(",".join(["1","2","3"]))#输出1,2,3 30 print("zhao kang".replace("a","A",2))#输出结果zhAo kAng 31 print("1+2+3+4".split("+"))#输出结果['1', '2', '3', '4']
9.字典
字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
语法:
1 info = { 2 'stu1101': "TengLan Wu", 3 'stu1102': "LongZe Luola", 4 'stu1103': "XiaoZe Maliya", 5 }
字典的特性:
dict是无序的
key必须是唯一的,so 天生去重
增加
1 >>> info["stu1104"] = "苍井空" 2 >>> info 3 {'stu1102': 'LongZe Luola', 'stu1104': '苍井空', 'stu1103': 'XiaoZe Maliya', 'stu1101': 'TengLan Wu'}
修改
1 >>> info['stu1101'] = "武藤兰" 2 >>> info 3 {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1101': '武藤兰'}
删除
>>> info {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1101': '武藤兰'} >>> info.pop("stu1101") #标准删除姿势 '武藤兰' >>> info {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'} >>> del info['stu1103'] #换个姿势删除 >>> info {'stu1102': 'LongZe Luola'} >>> >>> >>> >>> info = {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'} >>> info {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'} #随机删除 >>> info.popitem() ('stu1102', 'LongZe Luola') >>> info {'stu1103': 'XiaoZe Maliya'}
查找
>>> info = {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'} >>> >>> "stu1102" in info #标准用法 True >>> info.get("stu1102") #获取 'LongZe Luola' >>> info["stu1102"] #同上,但是看下面 'LongZe Luola' >>> info["stu1105"] #如果一个key不存在,就报错,get不会,不存在只返回None Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'stu1105
字典循环
扫描二维码关注公众号,回复:
5175589 查看本文章
#方法1 for key in info: print(key,info[key])
#方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用 print(k,v)