尼采般地抒情

尼采般地抒情

尼采般地抒情

音乐盒

站点信息

文章总数目: 321
已运行时间: 1782


之前从OneNote转过来的笔记,暂未排版整理,日后整理……咕咕咕~

一、基本语法


  1. 大事谷歌;小事百度【建立良好的编程式思维】
  2. PEP8中的一些良好约定【编程规范】
  3. 字符串格式化:
    print('%s--%d--%s'%('wuzutao',20,'尼采般地抒情'))
    a. %i是什么格式的那啥?‘
  4. 强制性类型转换:类C
  5. 时间和日期:
    from datetime import datetime
    dt=datetime(2019,5,12,9,20)
    print(dt.year,dt.month,dt.day)

2019  5  12

dt.strftime('%Y/%m/%d %H:%M')

#datetime格式转化为字符串

'2019/05/12 09:20'

datetime.strptime('20161203', '%Y%m%d')

#字符串转化为datetime格式

datetime.datetime(2016, 12, 3, 0, 0)

  1. pass函数
    def f():
       #TODO: test pass
       pass
  2. 异常的处理
    def test(x,y):
       try:
           print(y/x)
       except:
           print('输入的信息有误!')

test(2,8)

test('e',8)

  1. range和range的区别!!!
  2. 对象传递和拷贝【类似C语言中的指针】
    #变量传递、列表传递和C类似
    #深拷贝和浅拷贝
    import copy
    a = [[1, 2, 3], [4, 5, 6]]
    b = a
    c = copy.copy(a)
    d = copy.deepcopy(a)
    print ('a-id:',id(a))#id相当于内存里面的地址
    print ('b-id:',id(b))
    print ('c-id:',id(c))
    print ('d-id:',id(d))
    a.append(15)
    a[1][2] = 10
    print (a)
    print (b)
    print (c)
    print (d)
  1. a-id: 2171119139144
    b-id: 2171119139144
    c-id: 2171119848136
    d-id: 2171119140744
    [[1, 2, 3], [4, 5, 10], 15]
    [[1, 2, 3], [4, 5, 10], 15]
    [[1, 2, 3], [4, 5, 10]]
    [[1, 2, 3], [4, 5, 6]]


二、数据结构


元组


	○ #转换为元组(list->tuple, string->tuple)
	l = [1, 2, 3]
	print (tuple(l))
	str = ('Hello ChinaHadoop')
	print (tuple(str))
	>>>(1, 2, 3) ('H', 'e', 'l', 'l', 'o', ' ', 'C', 'h', 'i', 'n', 'a', 'H', 'a', 'd', 'o', 'o', 'p')
	○ tup1 = (1, 2, 3)
	#嵌套元组:
	tup2 = ((1, 2, 3), (4, 5))
	print (tup2)
	#合并元组:
	tup1 + tup2
	○ #拆包
	def test_1():
	    r=(2,4,5,32)
	    return r
	a, b, _, f=test_1()
	print(f)
	>>> 32
	○ # 元组列表迭代
	tuple_lst = [(1, 2), (3, 4), (5, 6)]
	for x, y in tuple_lst:
	    print (x+y)
	>>>3   7   11
	○ # 计数器
	列表/元组.('需要查找里面的某个对象的个数')


列表


	○ list里面可以有不同类型的元素
	○ #合并列表
	lst_1=[352,2352,3,556]
	lst_2=['gew','f']
	>lst_3 = lst_1 + lst_2
	>lst_1.extend(lst_2)
	○ #sort函数和sorted函数
	list_1=[23,54,346,222,4,1]
	print(list_1.sort())     #查查版本
	print(sorted(list_1))  #sorted是新起的一个列表
	lst_6 = ['Welcome', 'to', 'Python', 'Data', 'Analysis', 'Course']
	lst_6.sort()
	print (lst_6)【!!!!打印出来是none===查查版本】
	>>>['Analysis', 'Course', 'Data', 'Python', 'Welcome', 'to']
	lst_6.sort(key = len, reverse=True)
	print (lst_6)
	>>>['Analysis', 'Welcome', 'Course', 'Python', 'Data', 'to']


字典


	○ #合并字典
	dict1 = {1:'huhuhu'}
	dict2 = {4: 'new1', 5: 'news'}
	dict1.update(dict2)
	○ #通过多个列表创建字典
	dict_3 = {}
	l1 = [32,543,6,2,7,4]
	l2 = reversed(l1)
	for i1, i2 in zip(l1, l2):
	    dict_3[i1] = i2
	print (dict_3)
	>>>{32: 4, 543: 7, 6: 2, 2: 6, 7: 543, 4: 32}
	'''hash函数来判断某个对象是否可以做键'''
	○ '''位置赋值;默认赋值;关键字赋值——format'''
	'''遍历字典的方式变了:keys,values,items'''
	天行九歌={'韩非':'逆鳞','卫庄':'鲨齿','盖聂':'渊虹'}
	print(天行九歌)
	for ren,jian in 天行九歌.items():
	    print('{}--{}'.format(ren,jian))
	>>>
	{'韩非': '逆鳞', '卫庄': '鲨齿', '盖聂': '渊虹'}


集合


	○ a1=[1,3,4,1,35,2352,75]
	b1=[3,2352,24354,4332432,54]
	a=set(a1)
	b=set(b1)
	print(a)
	print(b)
	a | b#并;a & b#交;a - b#呃。。。;a ^ b#呃。。。;
	a.issubset(b)#判断子集
	>>>False
	a.issuperset(b)#判断父集
	>>>False


三、高级特性


推导式


	○ str_lst = ['Welcome', 'to', 'Python', 'Data', 'Analysis', 'Course']
	result = [x.upper() for x in str_lst if len(x) > 4]
	print (result)
	>>>['WELCOME', 'PYTHON', 'ANALYSIS', 'COURSE']


多函数模式


	○ str_lst = ['$1.123', ' $1123.454', '$899.12312']
	
	def remove_space(str):
	    """
	        remove space
	    """
	    str_no_space = str.replace(' ', '')
	    return str_no_space
	
	def remove_dollar(str):
	    """
	        remove $
	    """
	    if '$' in str:
	        return str.replace('$', '')
	    else:
	        return str
	
	def clean_str_lst(str_lst, operations):
	    """
	        clean string list
	    """
	    result = []
	    for item in str_lst:
	        for op in operations:
	            item = op(item)
	        result.append(item)
	    return result
	
	clean_operations = [remove_space, remove_dollar]
	result = clean_str_lst(str_lst, clean_operations)
	print (result)
	>>>['1.123', '1123.454', '899.12312']


匿名函数


	○ str_lst = ['Welcome', 'to', 'Python', 'Data', 'Analysis', 'Course']
	str_lst.sort(key=lambda x:len(x)) # sort by length
	print (str_lst)
	
	str_lst.sort(key=lambda x:x[-1]) # sort by the last letter
	print (str_lst)
	>>>
	['to', 'Data', 'Python', 'Course', 'Welcome', 'Analysis']
	['Data', 'Course', 'Welcome', 'Python', 'to', 'Analysis']


迭代器


	○ def gen_test():
	    for i in range(3):
	        yield i
	        
	gen = gen_test() #此时不执行生成器
	type(gen)
	for i in gen:
	    print(i)
	#用意何在呢??!!
	>>>0  1  2


四、常用函数


序列函数&zip使用


	a. enumerate函数
	list_11 = ['Welcome', 'to', 'Python', 'Data', 'Analysis', 'Course'] 
	for i, item in enumerate(lst_6):
	    print ('%i-%s' %(i, item))
	>>>
	0-Analysis 
	1-Welcome 
	2-Course 
	3-Python 
	4-Data 
	5-to
	str_dict = dict((i, item) for i, item in enumerate(list_11))
	print (str_dict)
	>>>{0: 'Welcome', 1: 'to', 2: 'Python', 3: 'Data', 4: 'Analysis', 5: 'Course'}
	b. zip压缩
	lst_6 = ['Welcome', 'to', 'Python', 'Data', 'Analysis', 'Course']
	lst_8 = ['a', 'b', 'c']
	zip_lst = zip(lst_6, lst_8)
	print(list(zip_lst))
	#方式一:直接转化为列表
	print(dict(list(zip_lst)))
	#方式二:转化为字典
	for i in zip_lst:
	    print (i)
	#方式三:直接遍历
	解压:
	print(*zip_lst)
	print(lst_6)
	c. reversed逆序输出


函数式编程


	a. #函数可以作为变量使用;也可以将函数作为参数使用
	import math
	def func_add(x, y, f):
	    """
	        functional addition
	    """
	    return f(x) + f(y)
	
	print (func_add(4, 25, math.sqrt))
	print (func_add(-4, 25, abs))
	>>>7.0    29


map和reduce


	a. '''map函数'''
	list_1=[1,4,9]
	aaa = [x**2 for x in list_1]
	print (aaa)
	
	bbb = map(math.sqrt, aaa)
	print (bbb)
	>>>
	[1, 16, 81]


<map object at 0x000002145B2B77F0>


filter函数


	a. 天行=['韩非','卫庄','张良','盖聂','逆鳞']
	def fx(x):
	    y=['逆鳞']
	    if x in y:
	        return x
	filtered_lst = filter(fx,天行)
	print(天行)
	print(list(filtered_lst))
	#注意python2和3的区别,很多时候要区别出来列表等序列,加上list很有必要
	>>>
	['韩非', '卫庄', '张良', '盖聂', '逆鳞']
	 ['逆鳞']

评论区

什么都不舍弃,什么也改变不了