首页 > 技术文章 > python学习笔记

levelstrcpy 2018-03-01 13:23 原文

Python格式化输出

name = "laowang"     
age = 18    
print(age)     
print(type(name))    
print(name + str(age))    
print("老王今年%d岁"%age)   
print("%s今年%d岁"%(name,name))  

打印浮点数(指定保留小数点位数)**
print("His height is %.2f m"%(1.83))
效果为 His height is 1.83 m
print("hello")
print("world")
要是她不换行显示,可以改为
print("hello",end="")
print("world")

print默认end ="/n"

更多Python格式化输出点击此处
input输入的东西为字符串
num = input("请输入数字:")
print("输入的数字为%s"%num)

运算符

a,b = 1,2    
a,b = b,a  #a,b可以直接交换      

输入两个数并输出两数的和
num1 = input("请输入第一个数:")
num2 = input("请输入第二个数:")
result = int(num1)+int(num2)
print("%s + %s = %d"%(num1,num2,result))

字符串

#######给定一个单词,依次打印给定的字母
world = input("请输入一个单词:")
for temp in world:
print(temp)
#######字符串切片
name = 'abcdef'
name[0:2]-------->'ab'从0开始取到2前面的一个字符
name[:]----------->'abcdef'取全部
name[-1]---------->'f' 最后一个字符
name[0:-1]-------->'ancde'
name[起始位置:结束位置:步长]
name[::]---------->'abcdef'取全部
name[::2]--------->'ace'步长为2
name[::-1]-------->'fedcba'倒着输出

列表

添加

append------------->向列表末尾添加元素
extend------------->向列表末尾添加列表
>>> a = [1,2]
>>> b = [3,4]
>>> a.append(b)
>>> a
[1,2,[3,4]]
>>>a.extend(b)
>>>a
[1,2,[3,4],3,4]
insert------------->在指定位置前插入元素
>>>a = [0,1,2]
>>>a.insert(1,3)
>>>a
[0,3,1,2]

查找

names =["xiaohong","xiaoming","laowang"]   
shuru = input("请输入你的名字:")        
if shuru in names:   
	print("在花名册里")   
else:  
	print("不在花名册里")     

index------->返回下标,如果不存在,异常
count------->返回出现的次数,如果不存在,返回0

删除

del----------->根据下标进行删除del names[]
pop----------->删除最后一个元素names.pop()
remove-------->根据元素的值进行删除names.remove("")

排序

sort()---------->由小到大排序
sort(reverse=True)----------------->由大到小排序
revserse()--------------->将列表中的所有元素拟过来

元组

元组的值不允许修改,元组中只含有一个元素时,要加“,”,否则type 类型为元素的类型

字典

键值对:key不允许有相同的且不可修改。
修改元素:变量名['key']='修改后的值'
添加元素:变量名['键']=数据
删除元素:del 变量名[键]
del 删除整个字典
clear 清空整个字典

遍历

1.遍历字典的key
>>> for key in dict.keys():
...print(key)
2.遍历字典的value
>>> for value in dict.values():
...print(value)
3.遍历字典的项
>>>for item in dict.items():
...print(item)
4.遍历字典的key-value(键值对)
>>>for key,value in dict.items():
... print("key=%s,value=%s"%(key,value))

函数

调用函数:函数名()
#######函数的文档说明
>>>def test(a,b)
... "用来完成对2个数求和"
... print("%d"%(a+b))
>>> help (test)
Help on function test in module main:
test(a,b)
用来完成对2个数求和
(END)
函数定义前面不能加Tab键
那么程序不会出现语法错误,原因是第一个return被执行后,这个函数就结束了,所有接下来的return都不会被执行
如果定义的两个函数名相同,执行函数时只执行下面的函数
如果在函数中直接修改全局变量会产生异常
如果真的需要进行修改,那么可以在函数里面进行声明+global,其他函数都修改了

不定长参数
>>>def fun(a,b,*args,**kwargs):
    print(a)
    print(b)
	print(args)
	print(kwargs)
	test(11,22,33,44,55,66,77,88,99,mm=11,nn=44)
>>>11
   22
   (33,44,55,66,77,88,99)
   {"mm":11,"nn":44}
>>>A=[11,22,33]
   B={"aa":100,"bb":200}     

引用

>>>a = 100
>>>b = a
>>>id(a)
   10914880
>>>id(b)
   10914880
>>>a = 200
>>>b
   100
>>>id(b)
   10914880
>>>id(a)
   10918080      
>>>A = [11,22]
>>>B = A
>>>A.append(33)
>>>A
   [11,22,33]
>>>B
   [11,22,33]	  

可变数据类型:列表、字典
不可变数据类型:数字、字符串、元组
字典中的key为不可变类型
a = a+a和a+=a 传递参数效果不一样
a = a + a:先把a取出来,重新组织一份,在放到新的地址中去
a+=a:直接对原来的a修改,地址不变

匿名函数——————————lambda 参数:表达式

b.sort(key=lambda x:x['xuhao'])按xuhao从小到大排序

文件

打开文件 : open(文件名,访问模式)
关闭文件 :close()

面向对象

定义一个类的方式为:

class 类名:
	#类属性(常用“类”访问类属性)
	#
	#实例方法
	def 方法名(self):
		#实例属性
    	执行的程序
		#如果类属性的名字和实例属性的名字相同,那么通过对象去获取的时候,会获取实例属性的值

类名:规则 大驼峰

给一个对象添加属性的方法为:
对象名.新的属性名 = 值

获取这个对象的属性,2种方法:
1.对象.属性
2.定义一个方法,这个方法中,使用self.属性

init()方法

1.是python自动调用的方法,调用的时间为:创建完对象之后,立马自动调用
2.不需要开发者调用,即 对象名._inti_()
3.这个方法一般情况下会完成一些默认的事情,比如添加一些属性
4.
class XXXX:   
	def __init__(self,new_a,new_b):
		self.a = new_a
		self.b = new_b     

注意:new_a、new_b是局部变量,并不是对象的属性,如果在__init__方法中添加属性的话,需要使用类似self.属性名 = 值 的格式,此时self.a = new_a表示的是给对象添加一个属性,这个属性名为a,这个属性的值为局部变量new_a里面的值

只要属性名前面有2个下划线,就表示私有属性,所谓的私有属性,不能在外部使用 对象名.属性名获取,原来没有添加__的属性,默认是 公有的。

推荐阅读