第六天

1.程序用来表示运动状态的,而状态是用变量来表示的

2.数据类型l中可以改变的:列表和字典;不可以改变的有:字符串、元组、数字。

3.数据l类型中按照下表索引进行访问的有:列表、字符串、元组;映射访问的是:字典;直接访的是:数字,

4.数据类型中存放容器的是:列表、元组、字典;原子的是:数字和字符串。

5.集合是由不同的元素组成,里面的元素是无序的,并且里面的元素只能是数字、字符串、元组等数据类型。

6.由字符串转化成集合的方法是:set(字符串的变量名)注:如果由重复的元素删除。

NAME = 'jflkj'
set_1 =set(NAME)
print(set_1)
结果是
{'l', 'f', 'j', 'k'}

7.集合的灰魔法由:add (添加元素,但是每次只能添加一个元素);clear(清空集合中的所有元素,只剩下一个空列表);del(删除此集合)discard(删除集合中的元素,如果不存在不执行任何操作)

复制代码
NAME = 'jflkj'
set_1 =set(NAME)
set_1.add('jflk')
print(set_1)
set_1.discard('f')
print(set_1)
结果是
{'k', 'jflk', 'f', 'l', 'j'}
{'k', 'jflk', 'l', 'j'}
复制代码
NAME = 'jflkj'
set_1 =set(NAME)
set_1.clear()
print(set_1)
结果是:
set()
NAME = 'jflkj'
set_1 =set(NAME)
del set_1
print(set_1)
结果是:
Traceback (most recent call last):
  File "D:/python 程序/练习题.py", line 64, in <module>
    print(set_1)
NameError: name 'set_1' is not defined
复制代码

 

复制代码

8. 集合里的操作:交(&)、并(|)、差(—)交叉补集(^)

复制代码
python_1 = ['hrl','pd','oymk']
linux_1 = ['hrl','oymk','slx']
python_set =set(python_1)
linux_set =set(linux_1)
print(python_set,linux_set)
v1 =python_set&linux_set   交操作是取两个共有的部分
v2 =python_set|linux_set  并操作是将两个集合中所有的元素放在一起并把重复的元素剔除
v3 =python_set-linux_set 差操作是前面一个元素的总元素减去共有的元素
v4 = linux_set-python_set  同上
v5 =linux_set^python_set  交叉补集是用所有的元素减去共有的元素
print(v1,v2,v3,v4,v5)
结果是:
{'hrl', 'oymk', 'pd'} {'slx', 'hrl', 'oymk'}
{'hrl', 'oymk'} {'slx', 'hrl', 'oymk', 'pd'} {'pd'} {'slx'} {'slx', 'pd'}
复制代码

9.列表中的元素是允许重复的,怎样去除列表里相同的元素:1是使用for循环2.是使用集合;程序如下:‘

复制代码
方案一
lie = ['fjk',123,'jfklj','fjk',123,'jfkl','jflk',3344,'kjkj']
li = []
for i in lie:
    if i not in li:
        li.append(i)
print(li)
结果是
['fjk', 123, 'jfklj', 'jfkl', 'jflk', 3344, 'kjkj']
方案二:

lie = ['fjk',123,'jfklj','fjk',123,'jfkl','jflk',3344,'kjkj']
li =frozenset(lie)
list_li =list(li)
print(list_li)
结果是
['fjk', 'jfklj', 3344, 'kjkj', 'jflk', 123, 'jfkl']
复制代码

10字符串的格式化:如果只有格式化的内容超过一个则需要使用括号括起来:并和字符串使用%s 数字使用%d浮点数使用%f(如果f前面有小数点则数字代表保留的位数,默认保留6位数字)

复制代码
tp1 = 'iam %s,myhobbyis alex'%'lhf'
print(tp1)
tp2 = 'iam %s,myageis %s' %('lhf',15)
print(tp2)
print('percentage %.3f'%444.34556655)
tp3 ='i am %(name)s ,age%(age)d'%({'name':'alex','age':15})  字典的传入方式
结果是:
iam lhf,myhobbyis alex
iam lhf,myageis 15
percentage 444.346
复制代码

11.第二种格式化的方式:

复制代码
tp1 = 'i am {}, age {},{} '.format('seven',123,'alex')
第一种必须一一对应,元组里的元素可以多但是不能比前面个数少否则报错
tp2 = 'i am {0},age{1},{2}'.format('seven',234,'alex')
这个可以改变序号(注次序号是和后面元组的序号保持一致的)
tp3 ='i am {name},age{age},really'.format(name= 'alkkjf',age=12)

tp4  ='i am {name},age{age}really'.format(**{'name':'alkkjf','age':12})
(如果遇到**kwage形式则可以使用**字典变成上一个形式
tp5 = 'i am {:s},age {:d}'.format('seven',15)
print(tp1,tp2,tp3,tp4,tp5)
结果是
i am seven, age 123,alex  i am seven,age234,alex i am alkkjf,age12,really i am alkkjf,age12really i am seven,age 15
复制代码

12.函数:

def test (x):   def 是函数的关键字 test是函数名 括号里面是形参
    #函数功能定义
    x =x+1       代码块
    return x       返回值

13.使用函数的好处:减少代码的重复率、保持代码的一致性、可扩展性好。

14.过程就是没有返回值的函数

15.在函数中如果没有return 则默认返回none

16.return的总结

        1.返回值 =0    返回none

         2.返回值=1    返回object

         3.返回值多个   以元组形式返回

17.形参在调用时才分配空间看,调用结束后,释放内存空间,形参只在函数调用时有效,函数调用结束,返回主函数后,不能在使用形参

18实参可以时变量、常量、表达式、函数等

19.函数遇到return 就结束

20定义函数:

复制代码
def  test(x,y,z)    位置参数必须一一对应,如果多了或者少了都会报错
test(1,3,5)
def test1 (x,y,z)      关键字参数,顺序可以颠倒
test1(y=1,x=3,z=4)
def test2(x,y=2)   默认参数可以传入,也可以不传入
test2(3) test2(1,y=4)
复制代码

21.

定义函数中函数组:元组或者列表

复制代码
def test(x,*arge):
    print(arge)

test(1,333,'fjkj',234)
def test1(x,*arg):
    print(arg)
test1(1,[11,33,'fkl','jfkj','jfklj'])
def test2 (x,*argx):
    print(argx)
test2(1,*['fjfklj','jfkj','j',333,555])  (*【】)代表的是将列表中的数遍地取出放到括号里
结果是
(333, 'fjkj', 234)
([11, 33, 'fkl', 'jfkj', 'jfklj'],)
('fjfklj', 'jfkj', 'j', 333, 555)
复制代码

22.字典:

复制代码
def test(x,**arge):
    print(arge)
test(1,name='jfkj',age='jfj')
def test1 (x,**arg):
    print(arg)
test1(1,**{'name':'jfkj','age':354})
结果是:
{'name': 'jfkj', 'age': 'jfj'}
{'name': 'jfkj', 'age': 354}
复制代码
posted @ 2019-11-08 21:23  chown  阅读(140)  评论(0编辑  收藏  举报