1.基础1

一.print

    print('hello python!')
	# 打印多个String
	print('x', 'yz')
	# 打印多行
	print('''line1
	line2
	line3 line4
	line5
	''')
	
	print(r'hello,"python"')
	print(r'''
	hello
	lis''')
	
	print('中国'.encode('utf-8'))
	print(b'\xe4\xb8\xad\xe5\x9b\xbd'.decode('utf-8'))
	print(len('中'))
	
	# 占位符
	print('hi,%s,you have %d $' % ('lisa', 101010))
	
	# 前面补空格
	print('%d' % 1)
	print('%2d' % 1)
	print('%3d' % 1)
	
	# 保留两位小数
	print('%.2f%%' % 3.1111)

输出结果:
    
    hello python!
	x yz
	line1
	line2
	line3 line4
	line5
	
	hello,"python"
	
	hello
	lis
	b'\xe4\xb8\xad\xe5\x9b\xbd'
	中国
	1
	hi,lisa,you have 101010 $
	1
	 1
	  1
	3.11%

二、list和tuple

1.list,相当于java里的List
基础操作:

    # 定义一个list
	list = ['111', '222', '333']
	# 输出list的长度
	print(len(list))
	# 在后面添加一项
	list.append("444")
	# 插入到第一项
	list.insert(1, '000')
	print(list)
	# 输出第1个和倒数第一个和倒数第二个
	print(list[1], list[-1], list[-2])
	# 删除倒数第二个
	list.pop(-2)
	print(list)

输出结果:

3
['111', '000', '222', '333', '444']
000 444 333
['111', '000', '222', '444']

2.list的元素可以是混合类型

    l = ['sss', 11, True, ["111", "222"]]
	print(l)
	print(l[0], l[2], l[3][1])

输出结果:

['sss', 11, True, ['111', '222']]
sss True 222

3.tuple,相当于java里的数组
tuple和list的最主要的区别是tuple初始化后,元素是不可变的,不能使用append和insert,pop等方法,其它用法和list基本一致,例如index,list[1]等。

    # 定义一个tuple
	t = (1, 2, 3)
	print(t[1])
	# 定义一个空的tuple
	t = ()
	print(t)
	# 定义一个只有一个元素的tuple,必须加个逗号,否则和数学运算符里的()冲突,被认为是1
	t = (1,)
	print(t)

输出结果:

2
()
(1,)

三、dict和set

1.定义:dict为python内置的字典,全称为dictionary,相当于JAVA里的map,使用key-value键值形式存储;
2.常用操作

    # 定义一个dict
	students = {'z1': 18,
	            'z2': 19,
	            "z3": 20}
	# 另一种定义的方式
	# students = dict([('z1', 18), ('z2', 19)])
	
	# 取值
	print(students['z1'], students.get('z2'))
	
	# 获取一个不存在的键对应的值
	print(students.get('zz'))
	
	# 获取一个键对应的值,如果不存在赋默认值
	print(students.get('zz', 123))
	
	# 判断z1是否在students中
	print('z1' in students)
	
	# 删除一对键值
	print(students.pop("z1"))
	print(students)
输出结果:
18 19
None
123
True
18
{'z2': 19, 'z3': 20}

2.总结:dict里一个key对应一个value,如果有多个相同的key,则以最后一个key的值为准,dict查找和插入速度快,耗费内存空间大,和list正好相反。
3.set:set是一组key的集合,没有value,并且set中没有重复的值,重复的元素在set中会自动被过滤

    # 定义一个set
	s = set([1, 1, 2, 2, 3])
	# s = {1, 1, 2, 2, 3}
	print(s)
	# 删除元素
	s.remove(1)
	# 增加元素
	s.add(4)
	print(s)
	
	s1 = {3, 4, 5}
	# 取s和s1的交集
	print(s & s1)
	# 取s和s1的并集
	print(s | s1)
	输出结果:
	{1, 2, 3}
	{2, 3, 4}
	{3, 4}
	{2, 3, 4, 5}
	
	Process finished with exit code 0

注意:list和tuple是有序的,dict和set是无序的

四、语法

	a = 85
	# if判断语句
	if a > 90:
	    print("A")
	elif a > 80:
	    print('B')
	else:
	    print('C')
	
	t = [1, 2, 3, 4, 5, 6]
	s = 0
	# for循环
	for i in t:
	    print(i)
	    s += i
	print(s)
	
	# range生成0到100的整数序列,再用list转成list后通过sum操作符可计算出整个list的和
	print(sum(list(range(101))))
	
	# while操作
	t1 = 100
	s1 = 0
	while t1 > 0:
	    s1 += t1
	    t1 -= 1
	    if t1 % 2 == 0:
	        continue
	    if t1 < 50:
	        break
	print(s1)
	
	输出结果:
	B
	1
	2
	3
	4
	5
	6
	21
	5050
	3825

五、函数

1.位置参数

	# 定义一个函数
	def sum(i1, i2):
	    return i1 + i2
	
	
	print(sum(1, 2))
	
	
	输出结果:
	3

2.默认参数

    # 定义一个函数,并定义一个有默认值的变量
	def method1(name, age, addr='shanghai'):
	    print('name:' + name)
	    print('age:' + age)
	    print('addr:' + addr)
	
	
	method1('大一', '19', 'beijing')
	method1('大二', '20')
	
	
	# 定义一个默认为空list的变量
	def method2(l=[]):
	    l.append('111')
	    return l
	
	
	print(method2())  # L初始为[],运行后被赋值为['111']
	print(method2())  # L刚被赋值后初始为['111'],运行后被赋值为['111','111']
	print(method2())
	
	
	# 解决上面的错误
	def method3(l=None):
	    if l is None:
	        l = []
	    l.append('111')
	    return l
	
	
	print(method3())
	print(method3())
	print(method3())
	
输出结果:
name:大一
age:19
addr:beijing
name:大二
age:20
addr:shanghai
['111']
['111', '111']
['111', '111', '111']
['111']
['111']
['111']

3.可变参数
可变参数可以传入0个或任意多个参数

	def method4(*i):
	    s = 0
	    for n in i:
	        s += n
	    return s
	
	
	print(method4(1, 2, 3))
	
	# 把一个list作为参数传入
	l1 = [1, 2, 3]
	print(method4(*l1))
输出结果:
6
6

4.关键字参数

	def method5(name, age, **i):
	    print('''
	name:%s
	age:%s
	i:%s
	    ''' % (name, age, i))
	
	
	method5('AA', '20', arg1='11', arg2='22')
	
	# 把一个dict作为参数传入
	d1 = {'arg1': 11, 'arg2': 22}
	method5('BB', '20', **d1)
输出结果:
name:AA
age:20
i:{'arg1': '11', 'arg2': '22'}
    

name:BB
age:20
i:{'arg1': 11, 'arg2': 22}

5.命名关键字参数
关键字参数可以被传入任意的参数,参数名不受控制,导致在方法里想获取可变参数里的键对应的值时有可能结果为None,还得通过if “arg” in i 判断才能保证安全,这种情况下可以用命名关键字参数控制参数名;

	def method6(name, age, *, arg1, arg2):
	    print(name, age, arg1, arg2)
	
	
	# 命名关键字参数必需传入参数名,否则报错
	# method6('CC', 20, 1, 2) #错误的写法
	method6('CC', 20, arg1=1, arg2=2)
	
	
	# 如果参数中有一个可变参数了,后面的命名关键字参数就不需要再写*隔开了
	def method7(name, age, *arg1, arg2):
	    print(name, age, arg1, arg2)
	
	
	method7("DD", 20, [1, 2], arg2=2)
输出结果:
CC 20 1 2
DD 20 ([1, 2],) 2

6.五种参数组合使用时需要按位置参数、默认参数、可变参数,命名关键字参数和关键字参数的顺序来写

	def method8(arg1, arg2=2, *arg3, arg4, **arg5):
	    print('''
	    arg1:%s
	    arg2:%s
	    arg3:%s
	    arg4:%s
	    arg5:%s
	    ''' % (arg1, arg2, arg3, arg4, arg5))
	
	
	method8("111", arg4=4)
	method8("111", 22, arg4=4)
	method8("111", 22, '3a', '3b', arg4=4)
	method8("111", 22, "3a", "3b", arg4=4, arg5=555)
输出结果:

    arg1:111
    arg2:2
    arg3:()
    arg4:4
    arg5:{}
    

    arg1:111
    arg2:22
    arg3:()
    arg4:4
    arg5:{}
    

    arg1:111
    arg2:22
    arg3:('3a', '3b')
    arg4:4
    arg5:{}
    

    arg1:111
    arg2:22
    arg3:('3a', '3b')
    arg4:4
    arg5:{'arg5': 555}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值