python有办法将任意值转化为字符串,将它传入repr()函数或者str函数
函数str()用于将值转为适合于人阅读的形式,而repr转为供解释器读的形式。
repr()函数得到的字符串通常可以用来重新获得该对象,repr()的输入对python比较友好。通常情况下obj==eval(repr(obj))这个等式是成立的。
obj = "i love python";
print(obj == eval(repr(obj)))
repr([0,1,2,3])
参考博客:http://www.cnblogs.com/itdyb/p/5046415.html
判断字符串是否包含另外一个字符串
"H" in a
python字符串的格式化
print "My name is %s and weight is %d kg!" % ('Zara', 21) 与c语言的输出大致相同。
python中定义unicode字符串
u'Hello World !'
eval函数是实现list,dict,tuple与str之间的转化 将str字符串转化为对应的数据类型。
a = "[1,2,3,4,5]";
print(type(a));
print(type(eval(a)));
https://www.cnblogs.com/niuniu2018/p/7737556.html
python中的元组与列表相同 有区别的是python中的元组信息不可修改。
tup1 = ('physics','chem',1997,2000)
print(tup1)
print(tup1[3])
时间格式化
import time
#获取本地时间
localtime = time.localtime(time.time())
print(localtime)
#获取格式化时间
localtime = time.asctime(time.localtime(time.time()))
print "本地时间为 :", localtime
#格式化时间
#格式化成2016-12-03 11:45:39形式
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
# 格式化成Sat Mar 28 22:24:24 2016形式
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
函数传值进去 改变局部的 不会影响全局,而传列表进去 改变里面的值,从而会影响全局的。
a = [1,2,3,4,5]
def test(a):
a[3] = 7
print(a)
test(a)
print(a)
表示可变参数
def print_info(arg1,*vartuple):
print("输出");
for var in vartuple:
print(var)
return
print_info(70,60,40)
lambda函数 表示一种匿名函数
sum = lambda arg1,arg2 : arg1 + arg2
print(sum(10,10))
class类的初始化
class Calcator:
#初始化类 使用类自带的方法为init 与函数方法相同 没有默认值的放在前面,有默认值的放在后面
name = "Good cal";
price = 18
def __init__(self,name,price,age = 77):
self.name = name;
self.price = price;
self.age = age;
与函数相同,未设置默认参数的放在初始化函数的前面,已设置默认参数的放在默认参数的后面。
列表的迭代遍历 用for in 来迭代每个数据
a_list = [12,3,4,5,3];
#列表插入 insert 第一个参数插入的位置 第二个是值 #remove代表删除第一个出现的该值 for content in a_list: print(content);
for index in range(len(a_list)): print('index = ',index,'number is',a_list[index]);
表示循环遍历的是index索引。输出值要在后面加上a_list[index],与数组访问元素相同。
元组的遍历相同。
for con in a_tuple: print(con);
try except语句,将需要尝试的语句放入try中,except用来处理异常,
若没有执行except语句。则会执行else里面的语句。如下所示:
try: a = 2; except Exception as e: print(e) else: #若没有执行except里面的 则会执行else里面的 print(3) zip函数 可以将两个列表打包成1个 a列表中的第1个和b列表中打包成一个元组
返回的是一个对象,所以需要将其转换成list
a = [1,2,3]; b = [4,5,6]; #zip打包出来的也要打包成对应的列表 c = list(zip(a,b));
map函数将对应的参数与函数映射起来,需要注意的是,参数必须以[1].[2]列表形式传递进去。
返回的同样也是对象,所以需要将其转化为list.
res = list(map(add,[1],[2])); print(res);
拷贝
a = [1,2,3]; b = a; #改变b的值 也会改变a的值
可看出 改变b的值后,相应的a的值也会发生变化。
浅拷贝,利用模块中的copy方法,只拷贝父类对象中的所有对象,通俗理解就是拷贝一层。其子类对象不进行拷贝。
a = [1,2,3]; b = copy.copy(a); print(a); b[1] = 5; print(a);
深拷贝:将父类中的所有父类和子类对象进行拷贝,两个对象是指向不同的内存空间的。修改b中的不会影响a中的值。
b = copy.deepcopy(a);
pickle对象,可以将数据进行保存,例如保存为一个文件 .pickle结尾的。第二天可以再拿出来进行操作。
a_dict = {'da':1,1:'2'}; #以二进制形式进行保存 file = open("example.pickle","wb"); #进行写入 pickle.dump(a_dict,file); file.close();
dump转化为json字符串进行保存。
进行读出的时候,可以用with语句,并在执行后自动关闭文件。
with open("example.pickle","rb") as file: a_dict1 = pickle.load(file); print(a_dict1);