python一些常用用法汇总(不断更新)

python函数相关

定义和返回

def func(abc):
	print abc
	return 1

b = func("abc") #b会接收返回值

要点
def是定义
return是返回

python数据类型

字符串转int

默认十进制:

abc=12
b = int(abc)

16进制:

abc=12
b = int(abc, 16)

注意入参必须是int或者string 否则需要转化 比如string 需要str(abc)

python循环判断

ctl-001 if判断

if num == 0:
	print num

if num != 0:
	print num

python打印相关

dy001-如何不换行打印

print("abc", end="") #python3 指定不换行
print("abc"),  #python2 用,指定不换行

dy002-如何格式化输出指定宽度 {:<10}

使用字符串的格式化操作来实现输出固定宽度的文本。最常见的方法是使用字符串的 .format() 方法或 f-strings(在 Python 3.6 及更高版本中可用)来进行格式化。

  • 使用 .format() 方法:
name = "Alice"
age = 30
city = "New York"
# 输出固定宽度的文本
output = "{:<10} {:<5} {:<15}".format(name, age, city)
print(output)

< 符号表示左对齐,数字表示字段的宽度
效果:

Alice      30    New York       
  • 使用 f-strings:
name = "Bob"
age = 25
city = "Los Angeles"

# 输出固定宽度的文本
output = f"{name:<10} {age:<5} {city:<15}"
print(output)

与 .format() 方法相比,f-strings 更简洁,但只适用于 Python 3.6 及更高版本。

python字符串相关

zf-003 python字符串拆分

  • 根据\n拆成数组,注意\n不会存在了
str="ab\nc\n"
shuzu=str.split("\n")

进阶1:使用拆分出来的数组下标

str="ab\nc\n"
shuzu=str.split("\n")
shuzu[0] #第0个
shuzu[1] #第1个
shuzu[-1] #倒数第1个
shuzu[2:4] #第 2 3个,没有4
shuzu[2:] #第2个到最后

进阶2:其他分割方式

str="ab\nc\n"
shuzu=str.split(" ") #空格
shuzu=str.split(":") #:
shuzu=str.split("bc") #bc分割 注意bc不会在了

注意分割之后如果数组不够 访问越界会out of list报错

zf-002 python 字符串替换

替换换行为空

str="abc\n"
str=str.replace("\n", "")

要点:python str是流式换行符也是一个,使用replace全局替换 也可以多个字符串替换

zf-001 python如何按照16进制打印int数字

num = 21
print("{0:#0x}".format(num))

参数顺序:
0 第一个参数
:# 带有前缀(比如最后指定是x 是16进制 前缀是0x)
0 0填充
x 16进制

进阶:

num = 21
print("{0:#0x} %d".format(num) %num)

python gdb相关

参考gdb文章,此处仅少量撰写

gdb-001 python如何指定gdb的命令

output = gdb.execute("info register")

进阶1:指定转化为字符串 不然是Nonetype

output = gdb.execute("info register", to_string=True)

进阶2:调用printf

output = gdb.execute("printf "\"0x%016x\", (struct task_struct*)0xffffff12", to_string=True)

进阶3:设置变量 后面再用

output = gdb.execute("set $abc={0:#0x}".format(num), to_string=True)
output = gdb.execute("p *(struct task_struct*)$abc".format(num), to_string=True)

注意gdb的变量都需要$
format是字符串的函数 输出16进制的num到abc里面

原理推测:python执行期间启动一个环境变量 与shell不太一样

进阶4:指定函数 函数中执行gdb

def test():
	output = gdb.execute("set $abc={0:#0x}".format(num), to_string=True)
	output = gdb.execute("p *(struct task_struct*)$abc".format(num), to_string=True)

注意参数可以通过gdb在调用函数前进行设置到gdb全局变量中

python 时间相关

t-001 python如何根据当前时间加上秒计算下一个时间

import datetime
st = datetime.datetime(2023,08,17)
delta=datetime.timedelta(3600) #s
endtime = st + delta
print endtime #tatetime结构
print endtime.strftime('%Y-%m-%d %H:%M:%S')  #string结构

推测原理:
datetime.datetime指定年月日,根据1970计算s,
然后用秒,转化为datetime结构的数据
两种datetime计算,得到新的datetime就是新的值

如果要格式化转化,datetime的strftime进行格式化为字符串。
推测datetime内部格式存储了一些快速计算格式

since 1692203803

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值