Python-3笔记

list、

 L = list(range(100))  //创建一个0-99的数列

切片

L = list(range(100))  //创建一个0-99的数列
//前10个数,每两个取一个
 L[:10:2]
[0, 2, 4, 6, 8]

tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple:

>>> (0, 1, 2, 3, 4, 5)[:3]
(0, 1, 2)

字符串’xxx’也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:

>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[::2]
'ACEG'

迭代

1、迭代dict

>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for key in d:
         print(key)
...
a
c
b        

默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()

for k,v in d.items():
    print (k,v)

2、判断一个对象是否是可迭代对象
通过collections模块的Iterable类型判断

from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代

3、迭代索引和元素本身
使用enumerate函数可以把一个list变成索引-元素对

for i, value in enumerate(['A', 'B', 'C']):
     print(i, value)

4、for循环同时使用两个甚至多个变量

d = {'x': 'A', 'y': 'B', 'z': 'C' }
for k, v in d.items():
    print(k, '=', v)

列表生成式

1、

d = {'x': 'A', 'y': 'B', 'z': 'C' }
l = [k + '=' + v for k, v in d.items()]
print(l)
['y=B', 'x=A', 'z=C']

在for之前的语句为要生成的表达式:k + '=' + v

2、用列表生成式,列出当前目录下的所有文件和目录名

import os
l = [d for d in os.listdir('.')]
print(l)

3、把一个list中所有的字符串变成小写

L1 = ['Hello', 'World', 18, 'Apple', None]
L2 = [ x.lower() for x in L1 if isinstance(x, str)]
print(L2)

函数参数

1、位置参数

def enroll(name, gender):
    print('name:', name)
    print('gender:', gender)

2、默认参数
默认参数必须指向不变对象

def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L

3、可变参数

def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum

numbers接收的是一个tuple
Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去

>>> nums = [1, 2, 3]
>>> calc(*nums)

4、关键字参数

def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)

kw接收的是一个dict,关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})
组装出一个dict,然后,把该dict转换为关键字参数传进去:

>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, city=extra['city'], job=extra['job'])
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

当然,上面复杂的调用可以用简化的写法:

>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

5、命名关键字参数
用于限制关键字参数的名字,命名关键字参数必须传入参数名
例如,只接收city和job作为关键字参数。这种方式定义的函数如下:

def person(name, age, *, city, job):
    print(name, age, city, job)

调用方式如下:

>>> person('Jack', 24, city='Beijing', job='Engineer')
Jack 24 Beijing Engineer

参考:Python-3 函数的参数

生成随机数、字符串

import random
import string

char_list = ['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a','!','@','#','$','%','^','&','*','(',')']
rand_int = random.randint(1,20)
print string.join(random.sample(char_list, rand_int)).replace(' ','')

参考:python 产生随机数,随机字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值