函数使用(一)

常用函数

  • 内置函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    print:打印、输出
    input:获取用户输入
    abs:求绝对值
    type:获取变量数据类行
    chr:将整数转换成ASCII对应的字符
    ord:将字符转换成对应的ASCII码
    id:获取变量的地址
    len:获取变量的长度(元素的个数)
    range:生成连续的可迭代对象
    enumerate:枚举可迭代对象

    类型相关:
    int
    float
    str
    bool
    list
    tuple
    set
    dict

    sum:求和
    pow:求幂,pow(2,3) 等价于 2**3
    round:四舍五入,可以指定保留位数
    max:求最大值
    min:求最小值

    hex:转换为 16 进制
    oct:转换为 8 进制
    bin:转换为 2 进制
  • 常见的模块函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    random:
    randint:生成随机的整数,参数表示开始结束,确定闭区间范围
    random:生成 0~1 的小数,随机值
    uniform:生成指定范围的随机浮点数
    choice:从传入的对象中随机抽取一个元素
    sample:从传入的对象中随机抽取指定个数的元素,组成一个列表返回
    choices:sample 抽取一个元素的形式
    shuffle:打乱传入的对象
    time:
    sleep:睡眠指定的秒数,可以是小数
    math:
    e:2.7xxx
    pi:圆周率
    ceil:向上取整
    floor:向下取整
    sqrt:取平方根
    degrees:弧度转换为度
    radians:度转换为弧度
    sys:
    argv:运行程序时的所有参数列表,第一个参数是脚本的名字
    os:
    system:执行系统命令,如:os.system('cls'),清屏
  • 字符串函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    join:
    l = ['泉眼无声惜细流', '树阴照水爱晴柔', '小荷才露尖尖角', '早有蜻蜓立上头']
    print(','.join(l)) # 将列表中的元素使用逗号拼接在一起
    字符填充:
    ljust:右边填充
    rjust:左边填充
    center:两遍填充
    zfill:左边填充 '0'
    strip:过滤两边的特定字符,默认是空白符(空格、\n、\t等)
    lstrip:只过滤左边
    rstrip:只过滤右边

    replace:字符替换,可以指定替换次数,默认全部替换

    split:字符串切割,可以指定切割次数,从左边切割
    rsplit:从右边切割
    splitlines:按照换行切割

    find:查找第一次出现指定字符串的位置,没有时返回-1
    rfind:从右边开始查找,返回第一次出现的位置

    upper:全大写
    lower:全小写
    swapcase:大小写转换
    capitalize:首字符大写
    title:每个单词首字母大写

    count:统计某个字符串出现的次数
    startswith:是否以指定字符串开头
    endswith:是否以指定字符串结尾

    istitle:是否每个单词首字母都大写
    islower:是否全小写
    isupper:是否全大写
    isdecimal:是否是数字(十进制数字)
    isdigit:是否是数字(十进制数字)
    isalpha:是否是字母
    isalnum:是否是数字或字母
  • 列表函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    append:追加元素
    remove:删除元素
    extend:将可迭代对象遍历然后挨个添加
    count:统计某个元素出现的次数
    index:返回某个对象在列表中的第一个索引,不存在就报错
    insert:在指定的位置插入元素
    pop:弹出最后一个元素,可以指定索引

    reverse:逆序
    sort:排序
    copy:拷贝
    clear:清空
  • 字典

    1
    2
    3
    4
    5
    6
    7
    items:返回可迭代对象,每个元素包含key,value
    keys:返回所有的键
    values:返回所有的值
    pop:删除所对应的键值对
    popitem:删除最后一个键值对
    update:将另一个字典的价键值对添加到当前字典中,若键有重复则覆盖
    copy:拷贝
  • 集合

    1
    2
    3
    4
    5
    6
    7
    8
    9
    add:添加元素
    update:将可迭代对象中的所有元素挨个添加
    remove:删除指定元素,没有会报错
    discard:删除指定元素,没有时也不报错
    pop:随机弹出一个元素

    issubset:是否是子集
    issuperset:是否是超集(父集)
    isdisjoint:是否没有交集

练习:

  • 使用random自己实现randint
  • 实现一个简单的计算器,参数在启动程序时输入
  • 实现函数(int):传入”12345”,返回12345
  • 实现函数(str):传入12345,返回”12345”
  • 号码归属地查询:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    5582|1860101|010|北京市|北京联通GSM卡
    5583|1860100|010|北京市|北京联通GSM卡
    5584|1368141|010|北京市|北京移动神州行卡
    5585|1860111|010|北京市|北京联通GSM卡
    5586|1358198|010|北京市|北京移动动感地带卡
    5587|1361139|010|北京市|北京移动预付费卡
    5588|1361138|010|北京市|北京移动神州行卡
    5591|1360110|010|北京市|北京移动全球通卡
    5748|1364110|010|北京市|北京移动神州行卡
    10186|1581584|020|广东省广州市|广东移动全球通卡
    15046|1391897|021|上海市|上海移动全球通卡
    17250|1502207|022|天津市|天津移动全球通卡
    21137|1345272|023|重庆市万州|重庆移动大众卡
    22700|1347812|024|辽宁省沈阳市|辽宁移动大众卡
    24256|1377065|025|江苏省南京市|江苏移动全球通卡
    26360|1898606|027|湖北省武汉市|湖北电信CDMA卡
    28709|1860802|028|四川省成都市|四川联通GSM卡
    30641|1552961|029|陕西省西安市|陕西联通GSM卡
    31700|1563007|0310|河北省邯郸市|河北联通GSM卡
    33360|1583396|0311|河北省石家庄市|河北移动全球通卡
    34825|1508122|0312|河北省保定市|河北移动全球通卡
    35363|1551235|0313|河北省张家口|河北联通GSM卡
    37700|1331326|0316|河北省廊坊市|河北电信CDMA卡
    43500|1350358|0358|山西省吕梁市|山西移动全球通卡
    43908|1553625|0359|山西省运城市|山西联通GSM卡
    44521|1335360|0370|河南省商丘市|河南电信CDMA卡
    50078|1509369|0378|河南省开封市|河南移动全球通卡
    53603|1583981|0398|河南省三门峡|河南移动全球通卡
    53916|1335897|0410|辽宁省铁岭市|辽宁电信CDMA卡
    55248|1554254|0411|辽宁省大连市|辽宁联通GSM卡
    58618|1374272|0427|辽宁省盘锦市|辽宁移动全球通卡
    58932|1554183|0429|辽宁省葫芦岛|辽宁联通GSM卡
    60268|1340475|0431|吉林省长春市|吉林移动大众卡
  • 歌词解析(不强制)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    [ti:蓝莲花]
    [ar:许巍]
    [al:留声十年绝版青春北京演唱会]
    [00:-01.70]蓝莲花
    [00:-00.70]演唱:许巍
    [00:00.00]
    [00:00.70]没有什么能够阻挡
    [00:06.01]你对自由的向往
    [00:11.43]天马行空的生涯
    [00:16.99]你的心了无牵挂
    [00:21.20]
    [02:11.55][01:50.60][00:22.63]穿过幽暗的岁月
    [02:16.93][01:55.60][00:27.81]也曾感到彷徨
    [02:22.21][02:01.09][00:33.13]当你低头的瞬间
    [02:27.62][02:06.33][00:38.32]才发觉脚下的路
    [02:31.64][02:10.23][00:42.37]
    [02:32.97][00:43.79]心中那自由的世界
    [02:38.23][00:49.50]如此的清澈高远
    [02:43.30][00:54.31]盛开着永不凋零
    [02:47.70][00:58.50]蓝莲花
    [02:53.95][03:00.06][01:05.41]