模块
Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的。
sys
#!/usr/bin/env python #-*- coding: utf-8 -*- import sys print(sys.argv) #输出 $ python test.py hello world ["test.py","hello","world"] #把执行脚本时传递的参数获取到了
os
#!/usr/bin/env python # -*- coding: utf-8 -*- import os os.system("df -h") #调用系统命令
结合起来
import os,sys os.system(''.join(sys.argv[1:])) #把用户的输入的参数当作一条命令交给os.system来执行
数据类型初识
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
在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都是实数。
跟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"
字符串格式化输出
name = "King golden horn" print("I am %s" % name) #输出 I am King golden horn
4.列表
创建列表
1 name = ["a","b","c","d","a","f"] 2 或 3 name = list(["a","b","c","d","a","f"]) 4 name2 = ["1","2","3","4"]
增删改查
1 name.append("g") #从最后面插入 2 name.insert(1,"h") #选择插入的位置,1代表下标 3 name.pop(3) #删除d pop是默认删除最后一个 4 name.remove("a") #删除 5 del name[1] #删除 6 7 name[0] = 'i' #修改,把a改成i 8 print(name[name.index("b")]) #查找b 9 print(name.count("a")) #统计有多少个a 10 11 name.clear() 12 print(name) #清空 13 name.reverse() 14 print(name) #反转 15 name.sort 16 print(name) #排序 特殊符号-->数字-->大写字母-->小写字母 17 name.extend(name2) 18 print(name)#合并 结果是 ['a', 'b', 'c', 'd', 'e', 'f', '1', '2', '3', '4'] 19 20 name3 = name.copy() #浅复制 只复制列表的第一层 21 import copy #引入模块 22 name = copy.deepcopy #深复制 完全复制一份
切片取
print(name[1]) #这就把b取出来了,因为b的下标是1,所以 name[1] 写1 print(name[0:2]) #切片 #这就把a,b取出来了,2 的下标是c,因为不包括2所以把a,b取出来了 print(name[-1]) #这就把f取出来了,因为 -1 代表最后一个 print(name[:2]) #name[:2]=name[0:2] 如果前面是0可以省略 print(name[0:-1:2]) #隔一个取一个值
元组
元组跟列表差不多,也是存一组数据,只不过他一单创建,便不能在修改,所以又叫做只读列表
语法:
1 name = ("a","b","c")
字符串常用操作
name = "my name is {name} and i am {year} old" print(name.capitalize()) #输出>>>Alex #首字母大写 print(name.count("a")) #输出>>>2 #统计有几个a print(name.center(50,"-")) #打印50个字符如果不够用-补齐把列表放中间 print(name.endswith("ex")) #输出>>>True #以什么结尾 print(name.expandtabs(tabsize=30)) #吧tab键换成30个空格 print(name.find("y")) #输出>>>1 #查找y的下标 print(name.format(name="alex",year=100)) print(name.format_map({"name":"alex","year":11111})) print(name.isalnum()) #判断是不是阿拉伯数字加阿拉伯字符 print(name.isblpha()) #判断是不是纯英文字符 print(name.isdecimal()) #判断是不是十进制 print(name.isdigit()) #判断是不是一个整数 print(name.isidentifier()) #判断是不是一个合法的标识符 print('ab'.islower()) #判断是不是小写 print('33'.isnumeric()) #是不是只有数字在里面 print(' '.isspace()) #判断是不是空格 print('My Name Is'.istitle()) #判断首字母是不是大写 print('My Name Is'.isprintable())#tty file,drive file print('My Name Is'.isupper()) #判断是不是全是大写 print('+'.join(['1','2','3'])) #输出>>>1+2+3 print(name.just(50,'*')) #保证长度50,不够的用*在后面补齐 print(name.rjust(50,'-')) #保证长度50,不够的用-在前面面补齐 print('Alex'.lower()) #把大写变成小写 print('Alex'.upper()) #把小写变大写 print('alex'.lstrip()) #lstrip去掉左边的空格回车 strip去掉两边的空格回车 print('alex'.rstrip()) #rstrip去掉右边的空格回车 p = str.maketrans('abcdef','123456') #2.2版本 print('alex li'.translate(p)) #输出>>> 115 li print('alex li'.replace('l','L',1)) #把l替换成大写 1是只替换一个 print('alex'.rfind('e')) #从左往走找到最右边的值返回下标 print('alex li'.split()) #按照空格分成列表 输出>>> ['alex','li'] print('1+2 3+4'.splitlines()) #按换行来分 print('Alex Li'.swapcase()) #大写换下写,小写换大写 print('lex li'.title) #输出>>>Lex Li print('lex li'.zfill(50)) #不够的用0填充 print('alex'.strip()) #strip去掉两边的空格回车 print(name.startswith("name",4,8)) #判断是否以字符串 "my" 开头,返回 True或False ,在第4个开始,第8个结束 print(name.endswith("old")) #判断是否以字符串 "old" 结尾,返回 True或False ,在第4个开始,第8个结束
字典
字典一种key-value的数据类型,使用就像我们上学用的字典,通过笔画,字母来查找对应页的详细内容。
语法:
1 info= { 2 'sut1':'1', 3 'sut2':'2', 4 'sut3':'3', 5 }
字典的特性:
dict 是无序的
key 必须是唯一的,so天生去重
1 print(info.get('sut1')) #查找 2 print(info['sut1']) 输出>>>1 3 info['sut1'] = '11' #修改 4 info['sut4'] = '11' #如果存在就修改,不存在就创建 5 print(info) 6 #del 7 del info['sut1'] 8 info.pop('sut1') 9 info.popitem() #随机删 10 print(info) 11 12 print('sut2' in info) #判断sut2在不在info里 13 14 15 info.value #打印所有值 16 info.key #打印说有key 17 18 info['大陆']['1024'][1] = 'abcde' 19 info.setdefault('大陆',{'www.baidu.com':[1,2]}) 20 #去字典里取大陆这个值,如果能取到返回和这个值,如果取不到就创建一个新的 21 22 info.items #items把字典改成列表 23 c = info.fromkeys([6,7,8],'test') #创建一个字典