python基础


#!/usr/bin/python
#-*-coding:utf-8-*-

import sys,time


nowtime = time.strftime("%Y-%m-%d %H:%M:%S")
number = int(time.strftime("%W"))+1

list1 = [0,1,2,3,4,5,6,7,6,5,4,3,2,1,0]
#print list.count(0)
#list2.extend(list)
#print list2
#print list2.index(0)
#list2.reverse()
#print list2
#list2.sort(reverse = True)
#print list2
#print type(list)
#list = set(list)
#print list

c = [i for i in list1]

print c
print 0 not in list1
#print sys.argv
#print sys.argv[1:]

#print sys.path

#for names in sys.modules.keys():
#print names

#print 'hello world %s' % raw_input("please input your name:")

#sys.stdout.write("Hello World")


#a = 4**2
#print a

#b = [x**2 for x in range(10) if x % 2 == 0]
#print b

L1 = [1,2,3,4]
L2 = ['a','b','c','d','f']
L3 = zip(L1,L2)
print L3

keys = ['name','age','hobby']
values = ['limengyu',11,'soccer']
maps = dict(zip(keys,values))
print maps

list3 = [1,2,3,4,5,6]
list4 = []
for i in list3:
i+=1
list4.append(i)
print list4

dicts = {"name":"limengyu","age":21,"play":"soccer"}
print dicts['name']


#filter(function, sequence):
#对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回
def f(x): return x % 2 !=0 and x % 3 !=0
list5 = filter(f,range(2,25))
print list5

def d(x): return x!='a'
list6 = filter(d,"abcdefa")
print list6

#map(function, sequence):
#对sequence中的item依次执行function(item),见执行结果组成一个List返回
def e(x): return x*x*x
list7 = map(e,range(0,10))
print list7

def g(x): return x+x
list8 = map(g,"abcde")
print list8
#另外map也支持多个sequence,这就要求function也支持相应数量的参数输入:
def h(x,y): return x+y
list9 = map(h,"abcdefg","ddddddd")
print list9

#reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,
#如果有starting_value,还可以作为初始值调用,例如可以用来对List求和:
def k(x,y):return x+y
list10 = reduce(k,range(1,11))
print list10 #55(注:1+2+3+4+5+6+7+8+9+10)
list11 = reduce(k,range(1,11),30)
print list11 #85(注:1+2+3+4+5+6+7+8+9+10+30)

#lambda:这是Python支持一种有趣的语法
g = lambda x:x*2
print g(3)
v = lambda x:(x*2)*(3)
print v(3)


#默认参数
def defaultParam(p1,p2='param2'):
print p1
print p2
defaultParam("param1")

#关键字参数
def keyWordsParam (p1,p2="param2",p3="param3"):
print p1
print p2
print p3
keyWordsParam("param1",p2="param22")

#正常来说,这些可变参数常常放在正式参数列表的后面,因为它们会包揽所有传递给该方法
#的剩余输入参数。任何出现在*args 参数后低的正式参数会被认为是关键字参数,意味着它
#们只能当关键字使用而不是位置参数
#可变参数列表
#def variableParamList (*args,sep="/"):
# print sep.join(args)
#variableParamList("root","root1","root2")
#variableParamList("root","root1","root2",sep=".")

#拆分参数列表
#list(range(4,9))

#形式
def lambda_test (n):
return lambda x:x + n
lt = lambda_test(3)
print lt(4),lt(5),lt(4)

#不定参数 *元组 **字典
class Test:
def __init__ (self,name,*age,**play):
self.name = name
self.age = age
self.play = play

def test(self):
print self.name
print self.age
for i in self.age:
print i
print self.play

test = Test("lmy",22,23,24,23,play="soccer",qqq=111,cc=2)
test.test()


#元组和序列
t1 = "aaaa",1,"cccc",2,
print t1
t2 = ("ccc","ggg")
print t2
print t2[0],t2[1]
t3 = t1,t2 #元组嵌套
print t3
print t3[0],t3[1]
print len(t3)#元组大小
a,b = t3 #翻转元组
print a
print b

#set集合
set1 = {"beckham","giggs","kean","Scholes","kean"}#创建方式1,使用花括号创建(空集合只能用set()创建,否则会当做字典)
print set1
print "beckham" in set1
print "beckham" not in set1
set2 = set('123467876')#创建方式2
print set2
set3 = {}
print type(set3)#字典
set3 = set();
print type(set3)#set集合

a = {x for x in 'abcdefghijk' if x not in 'afg'}
print a

#字典
dict2 = {"name":"giggs","age":24,"holly":"soccer"}
print dict2
dict2["hight"] = 170#添加元素
print dict2
del dict2["hight"]#删除元素
print dict2
print list(dict2.keys())#获取所有的keys列表
print list(dict2.values())#获取所有的values列表
print sorted(dict2.keys())#排序keys
print "name" in dict2
print "name" not in dict2
#在字典中可以用dict()构造方法直接直接从包含key-vlaue 的序列中定义一个字典。
list_ = [("name","limengyu"),("age",24)]
print dict(list_)
#此外,字典利用复合表达式从随机的key 和value 的表达式中来创建字典
print {x:x**2 for x in (2,3,4)}
#当关键字是简单的字符串时,可以用关键字参数直接指定对象
print dict(name="beckham",age=40,hight=185)


#遍历技巧
#当通过字典遍历数据时,用items()方法就可以同时把关键字和相对应的值从字典中取出
for k,v in dict2.items():
print (k,v)

#当用序列遍历数据时,用enumerate()可以同时把位置索引和对应的值得到
for i,v in enumerate(['aaa', 'bbb', 'ccc']):
print (i,v)
#想要同时遍历两个或多个序列时,可以用方法zip()把属性整合起来
listone = ['aaa','bbb','ccc']
listtwo = ['qqq','www','eee']
for k,v in zip(listone,listtwo):
print (k,v)
print '({0},{1})'.format(k,v)
#想要倒叙遍历序列,首先正序指定遍历序列,然后调用方法reversed().
for i in reversed(range(1,10,2)):
print i
#想要有序的遍历列表,用方法sorted()可以返回一个新的有序列表而不改变原先列表
list10 = ['j','c','d','g','e','a','a']
for i in sorted(set(list10)):
print i

#help(__builtins__)
#help(map)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值