python某些语句的用法

with open as

#有一些任务,可能事先需要设置,事后做清理工作,譬如打开、关闭文件,不用with语句时写成:
file = open("/tmp/foo.txt")
data = file.read()
file.close()
#或者可以加入对异常的处理:
file = open("/tmp/foo.txt")
try:
    data = file.read()
finally:
    file.close()
#但是显冗长,用with语句可以很好得解决

with open("D:/coding/xxx.csv","r") as f:
    df=pd.read_csv(f)

try语句

a=10
b=0
c=a/b
print "done"
#如果不用try,到计算c步时便会报错中断,导致后一条print语句未执行;

#我们把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如果except后没有指定异常,则默认处理所有的异常。每一个try,都必须至少有一个except
try:
    c=a/b
    print c
except ZeroDivisionError,e:#e是这个错误的实例名,错误类型可以是某个,也可以是几个(X,X),e
    print e.message
#else语句可加可不加,表示若没有出现该错误则操作
else:
    print "no error"
print "done"

#无论异常是否发生,在程序结束前,finally中的语句都会被执行
try:
    print a/b
finally:
    print "always excute"

open()

f=open('/tmp/hello','w')
#open(路径+文件名,读写模式)
#读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式如:rb,wb,r+b等
"""
rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
w     以写方式打开,
a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+     以读写模式打开
w+     以读写模式打开 (参见 w )
a+     以读写模式打开 (参见 a )
rb     以二进制读模式打开
wb     以二进制写模式打开 (参见 w )
ab     以二进制追加模式打开 (参见 a )
rb+    以二进制读写模式打开 (参见 r+ )
wb+    以二进制读写模式打开 (参见 w+ )
ab+    以二进制读写模式打开 (参见 a+ )

第二个参数默认是'r'只读的;
"""

image

合成 Image.blend(i1,i2,a)/Image.composite(i1,i2,mask)
缩略图 thumbnail(size,filter=None)
Modifies in-place,Preserves aspect ratio

myImage.thumbnail ((128,128),Image.ANTIALIAS)```
剪切 crop(bbox)

bounds = (100, 100, 400, 400)
cutoutIm = myImage.crop (bounds)“`
粘贴 paste(i2,where,mask=None)/paste(color,box=None,mask=None)
旋转 rotate(theta)
rotated around its center
翻转旋转 transpose(method)
ROTATE_90/180/270(clockwise), FLIP_TOP_BOTTOM(horizontal), FLIP_RIGHT_LEFT(vertical)

fixedIm = myImage.transpose (ROTATE_90)

numpy

x = np.eye(3).astype(int) #生成一个int型的3阶对角阵/默认是float64;

sorted

a=sorted(a, key=lambda x:x[1]) #以元素第2位排序;

List extend()

#在列表后面添上另一个list的元素;
aList = [123, 'xyz', 'zara', 'abc', 123]
bList = [2009, 'manni']
aList.extend(bList)

print ("Extended List : ",aList)

#Extended List :  [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']

csc稀疏矩阵

#造一个全0的稀疏阵;
csc_matrix((M, N), [dtype])
#造一个非零数的行列数据下标一一对应的;a[row_ind[k], col_ind[k]] = data[k]
csc_matrix((data, (row_ind, col_ind)), [shape=(M, N)])
#造一个非零数的行列数据下标,列标用的写法是每个列标的个数;比如[0,2,3,6]就是[0,0,1,2,2,2]
csc_matrix((data, indices, indptr), [shape=(M, N)])

sys()、模块

'''sys模块有一个argv变量,用list存储了命令行的所有参数。argv至少有一个元素,因为第一个参数永远是该.py文件的名称,例如:
运行python3 hello.py获得的sys.argv就是['hello.py'];
运行python3 hello.py Michael获得的sys.argv就是['hello.py', 'Michael]。
类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__author__,__name__就是特殊变量;
类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等;

自己写的模块要放在当前目录下;
'''

a=sys.argv

元类meta class/abc

我写一个模块导入某个类Hello时,这个Hello的type实际是一个type,也就是说,我可以通过type()直接构造一个类,不一定需要用class xx(object)的定义;

Hello = type('Hello', (object,), dict(hello=fn)) # 创建Hello class
#type()传入类名、继承的父类集合(支持多重继承,如果是单个要用tuple的单元素写法)、class的方法名称与函数绑定;

除了type()方法,还可以用metaclass;
metaclass→class→实例

lambda x

lambda x:x[0]
#对于嵌套if的语句
expression1 if A else expression2
#含义是 if A:expression1 else: expression2

print()不换行

print(1,end="")#end参数
print(3)
'''
output:
13
'''

find()

str.find(str, beg=0, end=len(string))
'''
beg=开始查找的位置
end=结束查找的位置
'''
Python语言中没有内置的goto语句。在没有引入特定的库或插件的情况下,Python解释器不会直接支持使用goto语句。这是因为goto语句在过去的编程语言中被广泛使用,但很快被证明是一个不好的编程实践。因此,许多现代编程语言都避免了引入goto语句,包括Python。 然而,Python本身允许通过修改`__code__`属性的字节码来动态地改变代码行为。这意味着在某些特殊情况下,你可以使用一些技巧来模拟goto语句的效果。但需要注意的是,这种使用方法可能会使代码变得难以理解和维护,并且容易引入错误。因此,除非你有非常特殊的需求,否则不建议在Python中使用goto语句。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [python语言保留字goto-如何在 Python 中实现 goto 语句](https://blog.csdn.net/weixin_39939668/article/details/109622685)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [chatgpt赋能python:如何在Python中使用goto语句](https://blog.csdn.net/reilust/article/details/131239289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值