python实用的快捷语法技巧大全
作者:肥学 发布时间:2022-12-11 11:33:35
标签:python,语法,字符串
前言
你知道a**3是什么意思吗?
你知道怎么打印模块路径吗?
你知道reduce()函数怎么用和列表怎么拼接字符串吗?
然而你可能全都知道
但是还是往下看看吧,可能会有你不知道的python小技巧学会它让你的效率提升不止一倍!!!
in判断
可以直接用来判断某个变量是否在列表中
我们可以使用下面的方式来验证多个值:
if 7 in [1,3,5,7,9]:
print("肥学")
答案:
肥学
就不用再用:
if m==1 or m==3 or m==5 or m==7:
四种翻转字符串/列表的方式
翻转列表本身
testList = [1, 3, 5]
testList.reverse()
print(testList)
#-> [5, 3, 1]
在一个循环中翻转并迭代输出
for element in reversed([1,3,5]):
print(element)
#1-> 5
#2-> 3
#3-> 1
一行代码翻转字符串
"Test Python"[::-1]
#输出 “nohtyP tseT”
更多例子:
>>> a=[1,2,3,4,5,6,7]
>>> b=(1,2,3,4,5,6,7)
>>> c='Let me show you a little thing'
>>> a[::-1]
[7, 6, 5, 4, 3, 2, 1]
>>> b[::-1]
(7, 6, 5, 4, 3, 2, 1)
>>> c[::-1]
'gniht elttil a uoy wohs em teL'
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> b
(1, 2, 3, 4, 5, 6, 7)
>>> c
'Let me show you a little thing'
>>> a.reverse()
>>> a
[7, 6, 5, 4, 3, 2, 1]
相对reverse而言,切片的方法不会改变列表的结构,所以这是在实际应用中比较有用的一个技巧
使用切片翻转列表
[1, 3, 5][::-1]
#输出 [5,3,1]
平方数
a=5
a**2=25
a**3=125
进制转换
dec = input('10进制数为:')
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))
string1 = '101010'
print('二进制字符串转换成十进制数为:',int(string1,2))
string1 = '367'
print('八进制字符串转换成十进制数为:',int(string1,8))
string3 = 'FFF'
print('十六进制字符串转换成十进制数为:',int(string1,16))
将字符串中的小写字母转为大写字母
str = "this is string example from runoob....wow!!!";
print ("str.upper() : ", str.upper())
以上实例输出结果如下:
str.upper() : THIS IS STRING EXAMPLE FROM RUNOOB....WOW!!!
一次性初始化多个变量
a,b,c,d=1,2,3,4
可以利用列表
List = [1,2,3]
x,y,z=List
print(x, y, z)
#-> 1 2 3
打印模块路径
import socket
print(socket)
#<module 'socket' from '/usr/lib/python2.7/socket.py'>
列表去重
list0 = [1, 2, 3, 2, 2, 5, 6, 5]
list0 = list(set(list0))
>>> list0
[1, 2, 3, 5, 6]
字典和列表推导
#列表
l=[[0 for i in range(4)] for i in range(4)]#生成二维列表
print(l)
# [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
#字典推导
testDict = {i: i * i for i in xrange(10)}
testSet = {i * 2 for i in xrange(10)}
print(testSet)
print(testDict)
#set([0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
#{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
拼接字符串
你可能见过这个拼接方法
a="i "
b="love "
c="you"
print(a+b+c)
看看这个
l=['a','b','c']
print(''join(l))
#以join左边的字符做分割
循环枚举索引
很方便的找到下标和对应元素
list = [10, 20, 30]
for i, value in enumerate(list):
print(i, ': ', value)
#1-> 0 : 10
#2-> 1 : 20
#3-> 2 : 30
开启文件分享
Python 允许运行一个 HTTP 服务器来从根路径共享文件,命令会在默认端口也就是 8000 开启一个服务器,你可以将一个自定义的端口号以最后一个参数的方式传递到上面的命令中。下面是开启服务器的命令
python3 -m http.server
巧用else语句(重要)
python的else 子句不仅能在 if 语句中使用,还能在 for、while 和 try 等语句中使用,这个语言特性不是什么秘密,但却没有得到重视。
l=[1,2,3,4,5]
for i in l:
if i=='6':
print(666)
break
else:
print(999)
split
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串。
语法:
str.split(str="", num=string.count(str))
简化:
str.split("")
reduce
reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算
简单例子:
>>> from functools import reduce
>>> def fn(x, y):
return x * 10 + y
>>> reduce(fn, [1, 3, 5, 7, 9])
13579
我们把最近的知识结合起来做一道题
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
result=""
for i in input()[::-1]:
if i not in result:
result+=i
print(result)
sorted
>>> sorted([36, 5, -12, 9, -21])
[-21, -12, 5, 9, 36]
#可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:
>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]
我们再看一个字符串排序的例子:
>>> sorted(['bob', 'about', 'Zoo', 'Credit'])
['Credit', 'Zoo', 'about', 'bob']
我们给sorted传入key函数,即可实现忽略大小写的排序:
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
['about', 'bob', 'Credit', 'Zoo']
要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True:
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
['Zoo', 'Credit', 'bob', 'about']
执行一个字符串表达式,并返回表达式的值
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
来源:https://blog.csdn.net/jiahuiandxuehui/article/details/118034937


猜你喜欢
- 本文只是几年前学习的tkinter的时候写的测试程序,十分之简陋,只是学习用,没什么其他用处。学习一下莫烦Python的tkinter教程,
- 因为最近接触到调用新浪微博开放接口的项目,所以就想试试用python调用微博API。SDK下载地址:http://open.weibo.co
- 前言:反向传播的目的是计算成本函数C对网络中任意w或b的偏导数。一旦我们有了这些偏导数,我们将通过一些常数 α的乘积和该
- xhtml+css页面制作过程中问题的解决方案,说是解决方案应该有点过了,充其量只不过是给刚刚开始学标准页面制作的朋友们的一些小建议,如果讲
- 回调函数用起来比较爽。特别是在js中,满世界全是回调,那么在python中,怎么来优雅地实现自己的回调函数呢下面贴一个我写的例子class
- 一、创建一个进程实例化 Process 类创建一个进程对象然后调用它的 start 方法即可生成一个子进程from multiprocess
- 前言python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符
- MySQL作为数据库的一大主力军,到处存在于我们各种系统中,相信大家都不陌生!但是,你知道你能用不代表你知道细节,那我们就来盘点盘点其中一些
- 前端时间智能信息处理实训,我选择的课题为身份证号码识别,对中华人民共和国公民身份证进行识别,提取并识别其中的身份证号码,将身份证号码识别为字
- 1. 为什么不使用GridView的默认分页功能 首先要说说为什么不用GridView的默认的分页功能,GridView控件并非真正知道如何
- 本文实例讲述了JavaScript函数重载操作。分享给大家供大家参考,具体如下:上个星期四下午,接到了网易的视频面试(前端实习生第二轮技术面
- 练手项目,先上图先实现一个简单的串口工具,为之后的上位机做准备代码如下:github 下载地址pyserial_demo.pyimport
- 一直想着给框架添加邮件发送功能、所以整理下python下邮件发送功能首先python是支持邮件的发送、内置smtp库、支持发送纯文本、HTM
- 首先到官网下载python2.7.3版本,编译安装$wget http://www.python.org/ftp/python/2.7.3/
- MySQL数据库应用广泛,尤其对于JAVA程序员,不会陌生。如果在不想采购云数据库的情况下,可以自行安装MySQL数据库。文章将介绍,手动在
- 前言文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。通过网上爬虫获取了全国所
- Idea 2020 发布之后,官方终于支持了中文语言包但是,我下载后在插件市场无法找到官方的汉化包那要怎么解决这个问题呢?首先,查看你当前I
- 本文实例讲述了python处理xml文件的方法。分享给大家供大家参考,具体如下:前一段时间因为工作的需要,学习了一点用Python处理xml
- 在Python 中使用pip指令安装第三方库
- 本文为大家分享了mysql 8.0.15 安装配置图文教程,供大家参考,具体内容如下1.进官网,选择适合自己版本的linux下的MYSQL版