文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python全栈Day 14部分知识点

2023-01-30 22:19

关注

  前面涉及数据类型和变量的总结

  变量的作用是用来记录状态变化,变量名:“门牌号”,变量值:内存中开辟一个“小房间“”,存在里面。

  数据类型:字符串、数字、列表、元组、字典。

    可变:列表、字典

    不可变(重新赋值,用ID号查看发现变了):字符串,数字,元组

  访问顺序:

    直接访问:数字

    顺序访问:字符串、列表、元组

    映射:字典(占内存比列表高,但查询速度更快)

  存放元素个数:

    容器类型:列表、元组、字典

    原子:数字、字符串

  由不同元素组成;无序;只能存放不可变类型。

  s={1,2,3,4,5,6}  #和字典一样都是花括号,但元素不一样

  dic={key:value,...}

 

  s=set('hello')

  print(s)

  输出

    {'o','h','l','e'}  #不止这一种结果

  s=set(['alex','alex','sb'])

  print(s)

  输出

    {‘sb’,'alex'}

  内置方法

    - add(将括号内的不可变数据整体放入集合中)

    - set(清空集合,输出set())

    - copy(复制某集合,产生新集合)

    - pop(随机删除集合中某元素)

    - remove(指定删除某元素,括号内写元素,元素不存在会报错)

    - discard(指定删除某元素,括号内写元素,元素不存在不会报错)

  补充

    set本身是可变的,但用s=frozenset('hello')定义的set是不可变的。

    简单去重:

      name=['alex','alex','wupeiqi']

      name=list(set(name))

  msg='I'+'Like'+'Music'  #加号尽量不要用,会开辟新的内存空间,效率非常低

  #与之相比,下面这样做就比较合理

  msg='I am %s my hobby is %s'%('Chen Yuan','music')  #其实%s什么都能接收,比如列表,数字...,但尽量用专门的符号,否则降低可读性;%.3s截取字符串前三位。  %d只能接收数字  %f浮点数(%.2f四舍五入小数点后两位)。  打印百分号%%。

  print(msg)

  输出

    I am Chen Yuan my hobby is music

 

  tp1='i am %(name)s age %(age)d'%{'name':'alex','age':18}  #通过键

 

  print('root','x','0','0',sep=':')

  输出

    root:x:0:0

  常用格式化

tp1='i am {},age {},hobby {}'.format('Alex',18,'play')  #不一一对应则报错

tp1='i am {2},age {1},hobby {0}'.format('play',18,'Alex')  #后面相当于元组

tp1='i am {1},age {1}'.format('play',18,'Alex')  #输出i am 18,age 18

tp1='i am {name},age {age},hobby {hobby}'.format(name='Alex',age=18,hobby='play')

tp1=''i am {name},age {age},hobby {hobby}'.format(**{'name':'Alex','age':18,'hobby':'play'})

tp1='i am {0[0]},age {0[1]},hobby {0[2]}'.format(['Alex',18,'play'],['CY',23,'music'])  #0[0]中第一个0指的是format后面整个圆括号和它包含的东西,输出i am Alex,age 18,hobby play

tp1='i am {:s},age {:d},money {:f}'.format('Alex',18,9999.9)

tp1='i am {:s},age {:d}'.format(*['Alex',18])

tp1='numbers: {:b},{:o},{:d},{:x},{:X},{:%},{}'.format(15,15,15,15,15,15.87623,2)  #b是二进制,o八进制,d整型,x十六进制(小写abcd),X(大写abcd),%显示百分比(1587.623000%默认小数点后六位)

 

  为了完成某特定功能而存在(内部开头'''The function definitions''',结尾return ...),返回值(如果是变量?)需要将值赋给新变量,然后打印该变量,否则打印出的是地址。函数遇到return就结束掉了,写多个return只会执行第一个。

  Python语句是自上而下执行的,如果定义了一个有参函数,又定义了一个函数名相同的无参函数,则接下来调用默认是调用无参的那个,如果调用的时候传参将会报错。

  使用函数的好处:

    1.减少代码重用;

    2.保持一致性,易维护;

    3.可扩展性。

  过程的定义:

    没有返回值的函数,没返回值返回None。

  返回值可以是多个值,返回的其实是元组

  总结:

    返回值数=0 返回None

    返回值数=1 返回object

 

    返回值数>1 返回tuple

 

  变量是不占空间的,相当于门牌号,值才占空间。

 

  形参只有在被调用时才会分配内存单元,调用结束即可释放所分配的内存单元,只在函数内部有效。  

  实参可以是常量、变量、表达式、函数等,无论何类,进行函数调用时都必须有确定的值,以便把这些值传送给形参。

 

  调用的位置参数test(1,2,3)(位置必须固定,不能多或少参数)和形参一一对应,如果调用使用的是关键字参数test(y=2,x=1,z=3),无需一一对应,但也不能多或缺参数。如果混用位置参数和关键字参数则位置参数一定要在关键字参数左边(另外,test(1,2,z=3,y=4)也会报错,y值不会覆盖。)

  形参如果包括设置默认值的参数可以不给它传值使用默认值,或者赋新值覆盖。

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 def test(x,*args):
4      print(x)
5      print(args)
6      print(args[0])
7      args.append('x')
8      print(args)

1.

输入

  test(1,2,3,4,5,6)

输出  

Traceback (most recent call last):
File "<input>", line 3, in <module>
1
File "<input>", line 7, in test
AttributeError: 'tuple' object has no attribute 'append'
(2, 3, 4, 5, 6)  #元组
2

 

2.

输入

  test(1,{'name':'alex'})

输出

1

({'name':'alex'},)

 

3.

输入(函数体最后加一条print(args[0][0]))

  test(1,['x','y','z'])

输出

1

(['x','y','z'],)

x

 

4.

输入

  test(1,*['x','y','z'])   #遍历列表的元素依次赋给args元组

输出

1

('x','y','z')

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 def test(x,**kwargs):
4     print(x)
5     print(kwargs)

1.

输入

  test(1,y=2,z=3)

输出

  1

  {'y':2,'z':3}

2.

输入

  test(1,y=2,z=3,z=3)  #会报错,一个参数不能传两个值

 

def test(x,*args,**kwargs)  #参数顺序不要变,名称最好也别变

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯