Python的一些技巧和知识点(一)

23 篇文章 0 订阅
14 篇文章 0 订阅

前言

  整理文档的时候偶然翻到了3年前自己学习python的时候做的一些笔记,觉得里面有些东西应该可能大概似乎对刚开始学习python的同学有所帮助,于是便有了这篇文章,每篇所记的数量不多,大概10个左右,方便同学记忆,有很简单的,也有比较难(相对新手)的,预计这个系列将会持续三到四篇,如果对小伙伴有帮助,还请点个赞,你的支持就是对我最大的鼓励。
 

1.多变量同时赋值

  想一次性给多个变量同时赋值,例如整数,字符串等,这在C/C++里要写多行,比较麻烦,python可以var1,var2,、、、 = exp1,exp2,、、、,例如:

a, b, c, d = 1, "I'm a string", 1 == 2, 0

  这个运算经常可以用来交换两个相同类型变量的值,例如:

a,d = d,a
print(a, d)
#0, 1

 

2.三元运算

  类似C/C++中的"?:",python也有三元运算,而且更符合自然语言逻辑,例如想要给一个变量赋布尔值:

c = True if a > d else False
# c = False

  对简单布尔变量来说,更简单的可以用下面这个来表示:

c = a > d
# c = False

 

3.字符串切片高级用法

  字符串[m:n:k],其中m表示起始位置,默认0,n表示结束为止,默认字符串长度-1,k表示步长,例如

0123456789[1:8:2] = "1357"0123456789[::-1] = "9876543210"  # 因此-1常用于将字符串逆序

 

4.字符串常用方法

  • str.lower()或str.upper()返回字符串str的副本,全部大写或小写。
  • str.split(sep)返回一个列表,由str根据sep被分隔的部分组成,将由sep分隔的字符分别作为一个字符串列出。
  • str.count(sub)返回子串sub在str中出现的次数。
  • str.replace(old,new)返回str的相应old被替换后的副本。
  • str.center(width,fillchar),字符串根据width居中,再用fillchar字符填充剩余的部分。
  • str.strip(chars)去掉str中左右两侧chars中列出的字符。
  • str.join(iter),在iter变量中除最后一个元素外每个元素后面加一个str,主要用于字符串分隔。

 

5.完整的异常处理

  完整的异常处理除了try和except,还有else和finally关键字,else的语句在不发生异常时执行,finally对应语句不管有没有异常都会执行,灵活运用的话,在解决一些算法题时非常有用

try:
	pass
except:
	pass
else:
	pass
finally:
	pass

 

6.循环语句的高级用法

  在循环体后接一个else,else后的语句在循环正常退出(没有被break)时会执行,灵活运用,可提升debug的效率,也可在程序逻辑设计时加上这句。

for i in range(10):
	pass
else:
	pass
a = 0
while a < 10:
	# do something
	a += 1
else:
	pass

 

7.lambda表达式

  有时候需要对几个变量进行操作/比较等,又不想单独定义一个函数,或者只需要用一次,那就用lambda。函数名 = lambda 参数:表达式,有点类似C语言里的宏定义。例如:

f = lambda x, y: x + y
print(f(1 + 5))  # 6

  lambda还常用在一个函数的参数需要是另一个函数时,例如常用在自定义排序规则时:

from functools import cmp_to_key
a = [1,3,2,-1,4,8]
a.sort(key = cmp_to_key(lambda x, y: x - y))  # x-y升序,y-x降序,此处com_to_key为python3语法
# a = [-1,1,2,3,48]

 

8.关于python中的变量

  python中一切数据都是对象,例如常量10,如果

x = 10
y = 10

  那其实x,y这两个变量都只是指向10这个对象的引用,同理,对字符串常量来说也是,所以如果在程序中碰到了感觉莫名其妙的bug,那就可以想想是不是这个引起的问题。
 

9.计时程序运行用时

  可以用time库的perf_counter()函数来计算循环所耗费的时间,这样有助于分析代码,优化代码。例如:

from time import perf_counter

start = perf_counter()
# do something
end = perf_counter()
print(end - start)

 

10.由两个列表创建字典

  有两个等长列表,比如a = [1,2,3,4],b=[str(x) for x in range(1, 5)],想以a列表的值为键,b列表的值为值,生成一个列表,可以这么做:

a = [1,2,3,4]
b = [str(x) for x in range(5)]
c = dict(zip(a, b))

第一篇先到此结束

第二篇见这里:
python的一些技巧和知识点(二)
觉得有帮助的话,点个赞再走吧?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值