python学习记录

调试

import pdb
pdb.set_trace()

注释

#单行注释
"""
 多行注释
"""
'''
 多行注释
'''

判断变量类型

a="测试"
print(type(a))

三目表达式、if else if else语句

#输入变量
a = int(input())
#三目表达式
print("大于2" if(a > 2) else "小于2")
#if else if else语句
print("大于2" if(a > 2) else "等于2" if(a == 2) else "小于2")

多行字符串

# 反斜杠 \
test1 = "select * from table \
where id=1"
# 双引号 """"""
test2 = """select * from table 
where id=1"""
# 单引号 ''''''
test3 = '''select * from table 
where id =1'''
# 字符串分为多行("")
test4 = ("select * from table"
"where id=1")

翻转

#函数
testa=[1,2,3,4,5]
testa.reverse()
print(testa)
#切片
print(testa[::-1])
#循环
for x in reversed([9,8,7,6]):
    print(x)

创建字典

#1.直接初始化
a = {"a":1,"b":2,"c":2}
#2.指定关键字
b = dict(a=1,b=2,c=3)
#3.映射
c = dict([('a',1),('b',2),('c',3)])
#4.迭代器
d = dict(zip(['a','b','c'],[1,2,3]))

运算符

print(3/2)#/返回浮点型
print(3//2)#//返回整型
print(3**2)#乘方(3的2次方)
print("重要的事情说三遍!"*3)#*遇到除数字以外的类型(字符串、列表、元组),都是代表重复几遍的意思

集合、字典合并

#集合
s1={1,2,3,"ce"}
s2={4,5,6}
print(s1 | s2)
#字典
d1 = {"v1": 22, "v2": 33}
d2 = {"v2": 44, "v3": 55}
print({**d1, **d2})

判断是否为父类的子类

print(issubclass(bool,int))#bool是int的子类,可进行相加

时间

#格式化时间
import time
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
#获取今天、昨天、明天
import datetime
today = datetime.date.today()#今天
print(today - datetime.timedelta(days=1))#昨天
print(today + datetime.timedelta(days=1))#明天
#格式化时间
from datetime import datetime
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

序列化

import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
print(json.dumps(data))#将对象转为json字符串
print(json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': ')))#将对象转为json字符串,格式化输出

反序列化

编码:# coding:utf-8、# coding=gbk、# -*- coding: utf-8 -*-、# coding:utf-8

import json
jsonStr = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
print(json.loads(jsonStr))#将json字符串转为对象

(交、并、差、补)集

a = set('hi')
b = set('hollo')
print(a&b)#交集
print(a|b)#并集
print(a-b)#差集(在a,不在b)
print(b-a)#差集(在b,不在a)
print(a^b)#补集(两种差集的并集)

遍历

#遍历字典
a = {"name":"peter","age":18,"luckynum":[1,2]}
for x,y in a.items():
    print(x,y)
#遍历元组(通过枚举)
b = "perter",18,[1,2]
for x,y in enumerate(b):
    print(x,y)
#遍历更多序列
c = ['c1', 'c2', 'c3']
d = 'd1', 'd2', 'd3'
for x, y in zip(c, d):
    print('{0},{1}'.format(x, y))
#迭代器遍历
list=["abc",2,[88,9.5]]
it = iter(list)#创建迭代器对象
for x in it:
    print (x)

 统计元素出现次数(有点类似group by 获取count(*))

num = list('hello world')
#方式一
print(num.count('h'))#获取数字h出现的次数
print(num.index('l'))#获取数字l首次出现的索引
#方式二
from collections import Counter
c=Counter(num)
print(c)#每个元素出现的次数
print(c.most_common())#转为列表
print(c.most_common(1))#数字代表输出项数

连接join

names = ["john", "sara", "jim", "rock"]
print("".join(names))

 排序

#列表
names = ["rs", "dz", "zy", "ed"]
#方式一
print(sorted(names))
#方式二
names.sort()
print(names)
#字典
d = {
    "v1": 80,
    "v2": 20,
    "v3": 40,
    "v4": 20,
    "v5": 10,
}

from operator import itemgetter
sorted1 = dict(sorted(d.items(), key=itemgetter(1)))
#倒序
#sorted2 = dict(sorted(d.items(), key=itemgetter(1), reverse=True))
print(sorted1)
#方式二
sorted3 = dict(sorted(d.items(), key=lambda item: item[1]))
print(sorted3)

推导式

#元组
touple = 1,2,3,4,5,6
#转为字典
dict = {x:y for x,y in enumerate(touple)}
print(dict)
#转为集合
set = {x for x in touple}
print(set)
#转为列表
list = [x for x in touple if x > 3]
print(list)

 *和**

#①.星号写在函数参数前为【可变长参数列表】
#单星号(*)元组输入;双星号(**)需要指定参数名称,字典输入
def fun_test(id,*args,**kw):
    print("id:{0}".format(id))
    for x,y in enumerate(args):
        print("x={0},y={1}".format(x,y))
    for x in kw:
        print("{0}:{1}".format(x,kw[x]))
#调用
fun_test(8023,1,24,"测试",name="张三",age=24,sex="")
#②_①.星号写在调用函数参数前为【解压参数列表】
def fun_test1(id, name):
    print("id:{0}".format(id))
    print("name:{0}".format(name))
#调用
fun_test1(*[1, "测试"])
#②_②
def fun_test2(id, name):
    print("id:{0}".format(id))
    print("name:{0}".format(name)) 
#调用
fun_test2(**{"id": 1, "name": "张三"})

大小写

str = "hi Lily,how are you!"
print(str.lower())#转小写
print(str.upper())#转大写
print(str.capitalize())#首字母大写,其它小写
print(str.title())#每个单词的首字母大写,其它小写

Map和Lambda

#1.原始
def fun_test(args):
    result = []
    for x in args:
        result.append(x ** 3)
    return result
#调用
print(fun_test([1,2,3]))
#2.Lambda
stupid_func = (lambda x : x ** 3)
print([stupid_func(1), stupid_func(2), stupid_func(3)])
#3.Lambda+Map
print(list(map(lambda x : x ** 3, [1, 2, 3])))

format

print("{0}{1}{2}".format(1,2,3))#数字占位(索引从0开始)
print("{}{}{}".format(1,2,3))#符号占位
print("{c}{b}{d}".format(c=1,b=2,d=3))#字母占位

uuid(随机数)

import uuid
print(uuid.uuid4())

%s

str = "Lily"
print("%s" % str)#完整输出
print("%5s" % str)#原字符串长度小于5,在左边补空格;超过5个字符,则输出原字符串
print("%-5s" % str + "为了看空格")#原字符串长度小于5,在右边补空格;超过5个字符,则输出原字符串
print("%.3s" % str)#截取原字符串的三个字符,如果字符串长度小于截取长度,那么原样输出(从左往右截取)
print("%10.3s" % str)#.的右边代表截取长度,左边代表补全长度

 救命!!!我还是不习惯python的语法,习惯性的打;,习惯性的按tab,习惯性的格式化代码。

posted @ 2022-05-16 14:24  MuZiLily  阅读(22)  评论(0编辑  收藏  举报