一、函数

1、运用函数可提高代码复用性

2、定义函数后,必须调用函数,函数才会被执行

3、需要参数时,就传参数,不需要就可以不传入参。

4、函数的返回值可有一个或者多个,当return多个值,要么用一个变量接收,要么用多个变量接收。

5、函数要不要返回值,要看函数的功能是什么,再决定入参和返回值

6、函数里面定义的变量都是局部变量。

7、函数里只要遇到return,函数立即结束

8、默认值参数,入参传就用传的值,不传就用默认值

9、一个函数只实现一个功能,不要写的很复杂。

 

#1.74,['1','74']
#-2.45,['2','45']
def is_float(s):#形式参数
    s=str(s)#把传入的参数强制转换为字符串类型
    if s.count('.')==1:#判断是否有1个小数点
        left,right=s.split('.')
        if left.isdigit() and right.isdigit():#判断左右2边的字符串是否都由数字组成
            return True
        elif left.startswith('-') and left[1:].isdigit() and right.isdigit():#运用切片,下标从1开始
            return True#各个分支,只会有一条路可走
    return False
print(is_float(-11.11))

 

def cal(a,b):#def定义一个计算函数
    c=a+b
    # print(c)
    return c#返回调用函数一个值
res=cal(1,6)#调用函数用一个变量来接收返回值
print(res)#输出函数返回接收到的值
def writefile(filename,content):#形参filename,content
    f=open(filename,'a+',encoding='utf-8')#打开文件
    f.write(content)#写入文件
    f.close()#关闭文件
writefile('1','2')#调用writefile函数,实参,因为write()方法的入参是str类型,所以传入实参也要是str类型,此函数无需返回值

def writefile(filename,content):
    with open(filename,'a+',encoding='utf-8') as fw:
        fw.write(content)
writefile('test1','aaa')


def readfile(filename):
    with open(filename,encoding='utf-8') as fw:
        print('before',fw.read())
        fw.seek(0)
        return fw.read()
res=readfile('test1')
print('after',res)


def readfile(filename):
    f=open(filename,'a+',encoding='utf-8')
f.seek(0)#a+文件操作模式,记得刚打开文件时,文件指针是指向末尾的,所以要seek(0)一下;W+的文件刚打开时,都会清空文件的 res
=f.read() # print('bf',res) f.close() return res res1=readfile('test2') print('af',res1)

 

#有多个返回值
def more():
    name='xiaohei'
    age='20'
    score=90
    return name,age,score
# res=more()
# print(res)#当有多个返回值时,可以用一个变量来接收的话,是元组的形式
name1,age1,score1=more()#当有多个返回值时,也可以用多个变量也接收
print(name1)
print(age1)
print(score1)

 二、Json操作

1、json就是一个字符串
2、内存里缓冲区满了,才向磁盘里写
3、jsonson就是一个字符串,长得像字典
4、字典转换字符串---json.dumps()
5、字符串转换字典---json.loads()
6、直接操作文件 ——json.dump()
7、从文件里直接读数据转成字典——json.load()
8、中文问题
9、美观问题
import json
dic = {
        "error_code": 0,
        "stu_info": [
                {
                        "name": "小米",
                        "sex": "",
                },
                {
                       "name": "红红",
                        "sex": "",
                }
        ]
}
# with open('test.json','w',encoding='utf-8') as fw:
#         # s = json.dumps(dic,ensure_ascii=False,indent=8) #把字典转成json,字符串
#         # fw.write(s)#写入文件
#        json.dump(dic,fw,indent=4,ensure_ascii=False)#直接操作文件,将字典转成字符串后自动写入文件


with open('test.json',encoding='utf-8') as fr:
        # result = fr.read()#从文件读取内容
        # print('result,刚从文件里面读出来的',type(result))
        # dic = json.loads(result)#将字符串内容转换成字典
        # print('dic,转换完之后的',dic,type(dic))
        result = json.load(fr)#直接操作文件,读取文件后转为字典
        print('result',type(result))

 三、切片

1、print(s[::-1])#如果步长是负数,那么就是从后往前开始取
2、print(l[:3]) #顾头不顾尾
3、非空即真,非0即真
4、print('li',id(li))#查看内存地址
5、循环的时候不要删list里面的元素,会导致下标错乱
6、stu1 = stu——浅拷贝,内存地址不变
7、stu2 = stu1[:]——深拷贝,内存地址改变
8、stu3 = copy.deepcopy(stu1)——深拷贝

 四、集合

1、集合天生可以去重
2、集合是无顺序的
3、s = set() #空集合
4、 s.add(1) #添加元素
5 s.remove(1) #删除元素
6、交集——intersection或者 & (2个集合都有的)
7、并集——union或者|(把俩集合加一起,重复的去除)
8、差集——difference或者-(在a集合里面有,在b集合里面没有的,以A为准)
9、对称差集——symmetric_difference或者^ (把两个集合里面都有的去除)

 五、列表生成式

# result = [ str(i).zfill(2)  for i in range(1,10) if i<8  ]
# print(result)
# #
# result2 = []
# for i in range(1,10):
#     if i<8:
#         j = str(i).zfill(2)
#         result2.append(j)
# print(result2)

 

 六、三元表达式

id_card = '410881199211111131'
sex = '' if int(id_card[-2])%2 == 0 else '' #三元表达式
print(sex)

 







posted on 2019-06-04 13:01  *星  阅读(156)  评论(0)    收藏  举报