Python从入门到放弃python
本文主要是描述的是做为初学者对python学习的过程与经历分享,包括一些历程的分享与重要的时间节点记录,对于python学习的笔记与心得。算法
若是你也是初学者,咱们能够一块儿学习探讨python的知识与技术,欢迎各位博主对个人批评与指导,若是涉及版权等违规的问题,望谅解,小白不懂事。api
话很少说,如下开始分享本身我的学习的第一个总结!!!app
1.第一个python程序 函数
编译器的安装与环境变量的配置我这里不作赘述,网上不少。学习
做为第一个python程序,打印一个hello world是必须的,仪式感仍是要有的,哈哈。编码
python的打印是经过调用函数print进行的。加密
打印Hello World的方式有不少种,如下只列举几种做为例子,供你们参考,程序代码以下:spa
print("Hello World!")#或者另一种标志符 print('Hello World') str = "Hello World" print(str)
以上为三种Hello的打印方式,你们能够试试。命令行
2.print函数的用法
str = "Hello World"#字符串打印类型,参数传递法 print(str) print("%s"%str)#参数引入法 print("Hello World")#双引号中间添加要打印的字符串 print('Hello World')#单引号和双引号的用法同样,没有区别 Num = 5 print(Num) print("%s"%Num) msg = '''#要打印的内容 Hello World! My Name is Wang..... ''' print(msg)#这种方法能够打印多行 name = input("name:") age= input("age:") #字符串中打印变量方案1 info1 = ''' -------------info of '''+name+'''------------ Name:'''+name+''' Age:'''+age print(info1) #字符串中打印变量方案2 info2 = ''' -------------info of %s------------ Name:%s Age:%s ''' %(name,name,age) print(info2) #字符串中打印变量方案3 info3 = ''' -------------info of {_name}------------ Name:{_name} Age:{_age} ''' .format(_name=name, _age=age) print(info3) #字符串中打印变量方案4 info4 = ''' -------------info of {0}------------ Name:{0} Age:{1} ''' .format(name, age) print(info4)
python为用户提供了多样化的打印方案,包括多行打印和单行打印,用户能够根据本身的需求进行选择。此处仅作一个概括,若有错漏请多多包含与指正。
3.if elif else语句
python中if else的语句用法相较其余语言的用法相同,可是格式有必定差异请看如下例子进行分析
_username ="wang" _password = 123 username = input("username: ") password = input("password: ") if _username ==username and password == password:#循环判断条件不须要使用() 改为: 同时子语句编译器会自动进行换行缩进,若是没用须要用户本身进行缩进 print("Welcome user {name} Login !").format(name = username)) else: print("Invalid username or password !")
4.while语句
while循环语句与if循环语句的格式相同,没有()用:替代,请看如下例子
i = 0 while i<10: print("Num is %s"%i)#打印数字0-9
5.模块初识
import关键词用于模块的导入
import sys其中sys是标准库中的函数能够直接引入后调用
sys模块
sys.path,寻找路径即:若是当前目录下有sys.py会到当前目录下寻找,若是没有当前目录下没有sys.path这个方法,在python2.0中会报错
标准库在再lib里,用户自行安装的库在site-packages中
sys.argv,打印脚本的相对路径
os模块
os.system('dir')打印cmd下的dir命令,此命令结果不能保存,直接输出的显示界面
os.popen('dir')执行结果存到内存中的某块地址,经过read()方法读取数据
cmd=os.popen('dir').read()此命令数据能够保存到变量中
os.mkdir(“new_dir”)本目录下建立一个新的文件夹
pyc文件
python是一门面向对象的解释型语言。。。当咱们在命令行输入python.py时,实际上是激活了python的"解释器",:告诉解释器要开始解释工做了,可是在解释以前python会进行编译。因此也能够把python理解成先编译后解释的语言。
PyCodeObject和pyc文件,PyCodeObject是python编译器真正的编译成果,python运行时先到目录中去寻找PyCodeObject文件,若是有则运行此文件,若是没有则生成此文件,程序运行结束时,python解释器将PyCodeObject写回到pyc文件中。程序第二次运行时,则会在硬盘中寻找pyc文件,找到直接载入,不然重复上述过程。
6.数据类型
整形:type(2**32) ,type查看数据类型,在python中没有长整型和整形的区分。
浮点:小数包含浮点,8字节64位,52表示底,11位表示指数,1位符号位。
布尔值:真或假,1或0
字符串:“hello world”
三元运算:a,b,c = 1,3,5 d = a if a > b else c
进制:不作描述,呵呵(二进制,八进制,十进制,十六进制,不懂本身了解下)
bytes类型:能够理解成二进制数据类型,与字符串是两回事。python3中对文本和二进制数据作了更清晰的区分,文本为Unicode由str类型表示,二进制数据则有bytes类型表示
转换:'@20'.encode(encoding=’utf-8’)将utf-8类型的字符串转换成二进制类型,二进制编码.decode(encoding=utf-8')二进制编码转换成字符串类型
7.列表
列表取值操做
例子:Num=[1,2,3,4,5,6,7,8]
print(Num)
print(Num[0-N])#取值从0开始
print(Num[1:5])#取到的值为顾头不顾尾,实际取到值为下标1-4,4个数。切片操做
print(Num[:-1])#打印从头至尾的数据
列表元素增长操做:
Num.append(6)某未添加元素操做
列表元素插入操做:
Num.insert(0,1)
列表元素修改操做:
Num[2]=5
列表元素删除操做:
Num.remove(6)
del Num[3]
Num.pop()不输入下标则默认删除最后一个元素,输入下标则删除下标相应位置的元素
列表元素查找操做:
Num.index(6)#输入要查找的元素,返回元素位置的下标
列表元素个数统计操做:
Num.count(6)#统计元素6出现的次数
列表清空操做:
Num.clear()
列表反转操做:
Num.reverse()
列表排序操做:
Num.sort()
列表拼接操做:
Num.extend([1,2,3])#列表的合并
列表删除操做:
del Num
列表copy:
浅copy:
列表的复制有两种即,深copy和浅copy,浅cpoy只cpoy第一层,举个例子:
Num =[1,2,[1,2],3,4,5,6,7,8,9,5,6,7,8]
Numcopy = copy.cpoy(Num) = Num.cpoy()=list(Num)=Num[:]
Num[0]=2时,Numcopy =[1,2,[1,2],3,4,5,6,7,8,9,5,6,7,8]
Num[2][0]=5时,Numcopy =[1,2,[5,2],3,4,5,6,7,8,9,5,6,7,8]
能够理解为列表中嵌套的列表[1,2]cpoy到Numcopy的值为指针。这种复制方式就叫作浅cpoy。
浅cpoy:Numcopy = Num.copy()
注意这里要与直接赋值做对比,直接赋值列表是通用一块地址空间
例如:Nums=Num,Num[0]=0时,则Nums[0]=1
深度cpoy:
NumDeepCopy=copy.deepcopy(Num)#此方法会独立的复制两份列表,深copy的使用要注意,防止内存滥用,浪费内存空间。
列表的循环操做:
for i in Num:
print(i)#打印全部列表元素
列表按照步长切片:
Num=[::2]#按照步长切片
7.元组
Num=(‘wang’,‘xing’,‘wei’)
元组的查询操做
Num.index('wang')#输入要查找的元素,返回元素位置的下标
Num.count(‘w’)#统计某个字符出现的次数
8.字符串的经常使用操做
name = "my name is wang" print(name.capitalize())#字符串的字一个字母是否为大写 print(name.count('m'))#统计某个字符出现的个数 print(name.center(50,'-'))#数据长度小于50个字节,name放中间,两边补符号'-' print(name.endswith('g'))#判断是不是以某个字符串或字符结尾 print(name.expandtabs(0))#把/t用空格替代,默认为8个空格 print(text.decode())#转换成utf-8编码类型 print(name.find('m',2))#查找某个字符第一次出现的位置,后面接的参数是第几回出现 print(','.join(['1','2','3']))#列表中加上某个字符,组成字符串 print(name.rjust(50,'-'))#数据长度小鱼50个字节,name放在左边,右边补符号'-' print(name.ljust(50,'-')) print(name.lower())#字符串全部的单词大写变小写 print(name.lstrip())#去掉左边的空格或者 print(name.maketrans())#用于加密的奇特算法 print(name.partition(' '))#字符串切分 print(name.rsplit(' '))#根据空格来切片 print(name.rfind('m'))#从右边向左边数,m出现的索引 print(name.replace('m','M'))#字符替换 print(name.rindex('m'))#反向查找 print(name.rpartition(' '))#反向切分 print(name.rstrip('\n'))#删除字符串末尾的字符 print(name.rpartition(" ")) print(name.rindex('m'))#反向查找 print(name.rstrip('wang'))#删除末尾字符串或者字符 print(name.swapcase())#全部字符大小写反转 print(name.splitlines())#按照\R\N \R\N分割 print(name.split())#空格换行字符表space \r\n \t print(name.startswith('m'))#是否字符串是以什么开头的 print(name.endswith('wang'))#字符串是否以什么结尾 print(name.strip('m'))#删除首字母 print(name.title())#全部字符的头部都变成大写 print(name.upper())#全部字符所有换成大写 print(name.zfill(50))#左边补0
9.字典
info={
1:"wangxingwei",
2:"koujie",
3:"linwenchang"}
字典的添加:
info[3]="chenshaoyong"
字典的删除:
del info[0]
info.popitem()#随机删除
info.pop(0)
字典的修改:
info[0]="chenshaoyong"
字典的查询:
info[0]#当获取的元素不存在时,编译器报错
info.get(0)#输入错误时,不会报错
判断某个键是否存在于字典中:
0 in info#若是存在则返回True不然返回False
字典查询全部键:
info.keys()
字典查询全部键值:
info.values()
字典添加方法:
info.setdefault()#先到字典中查询,若是存在返回,不存在添加
字典的update():
合并,把一个字典合并到另一个字典中,若是有键重复,则覆盖
字典转换成列表:
info.items()
字典循环:
for i in info:
for(i,info(i))# i 字典的键,字典的值info(i)
for i,v in info.items():
print(i,v)#把字典转换成列表,而后在打印
字典的fromkeys
例子: c= dict.fromkeys([6,7,8],[1,{"name":"wangxingwei"},333])
print(c)
c[7][1]["name"] = "koujie"
print(c)
此时的键6,7,8三个name值所有改为了koujie
建立一个字典并赋予一个初始化的值,一份列表数据地址内存,所有赋值给三个键,使用多层字典时,须要注意。