脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python实用的快捷语法技巧大全

python实用的快捷语法技巧大全

2022-10-14 10:55肥学 Python

初识Python语言,觉得python满足了我上学时候对编程语言的所有要求,下面这篇文章主要给大家介绍了关于python实用的快捷语法技巧的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

你知道a**3是什么意思吗?

你知道怎么打印模块路径吗?

你知道reduce()函数怎么用和列表怎么拼接字符串吗?

然而你可能全都知道

但是还是往下看看吧,可能会有你不知道的python小技巧学会它让你的效率提升不止一倍!!!

in判断

可以直接用来判断某个变量是否在列表中

我们可以使用下面的方式来验证多个值:

?
1
2
3
4
5
6
7
8
if 7 in [1,3,5,7,9]:
  print("肥学")
答案:
肥学
 
就不用再用:
 
if m==1 or m==3 or m==5 or m==7:

四种翻转字符串/列表的方式

?
1
2
3
4
5
翻转列表本身
testList = [1, 3, 5]
testList.reverse()
print(testList)
#-> [5, 3, 1]
?
1
2
3
4
5
6
7
8
9
10
在一个循环中翻转并迭代输出
 for element in reversed([1,3,5]):
    print(element)
 
 
#1-> 5
 
#2-> 3
 
#3-> 1
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
一行代码翻转字符串
"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
2
3
4
5
使用切片翻转列表
 
[1, 3, 5][::-1]
 
#输出 [5,3,1]

平方数

?
1
2
3
a=5
a**2=25
a**3=125

进制转换

?
1
2
3
4
5
6
7
8
9
10
11
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))

将字符串中的小写字母转为大写字母

?
1
2
3
4
5
6
str = "this is string example from runoob....wow!!!";
 
print ("str.upper() : ", str.upper())
以上实例输出结果如下:
 
str.upper() :  THIS IS STRING EXAMPLE FROM RUNOOB....WOW!!!

一次性初始化多个变量

?
1
2
3
4
5
6
7
a,b,c,d=1,2,3,4
可以利用列表
 
List = [1,2,3]
x,y,z=List
print(x, y, z)
#-> 1 2 3

打印模块路径

?
1
2
3
import socket
print(socket)
#<module 'socket' from '/usr/lib/python2.7/socket.py'>

列表去重

?
1
2
3
4
list0 = [1, 2, 3, 2, 2, 5, 6, 5]
list0 = list(set(list0))
>>> list0
[1, 2, 3, 5, 6]

字典和列表推导

?
1
2
3
4
#列表
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]]
?
1
2
3
4
5
6
7
8
9
#字典推导
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}

拼接字符串

?
1
2
3
4
5
你可能见过这个拼接方法
a="i "
b="love "
c="you"
print(a+b+c)
?
1
2
3
4
看看这个
l=['a','b','c']
print(''join(l))
#以join左边的字符做分割

循环枚举索引

?
1
2
3
4
5
6
7
8
很方便的找到下标和对应元素
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 开启一个服务器,你可以将一个自定义的端口号以最后一个参数的方式传递到上面的命令中。下面是开启服务器的命令

?
1
python3 -m http.server

巧用else语句(重要)

python的else 子句不仅能在 if 语句中使用,还能在 for、while 和 try 等语句中使用,这个语言特性不是什么秘密,但却没有得到重视。

?
1
2
3
4
5
6
7
l=[1,2,3,4,5]
for i in l:
    if i=='6':
        print(666)
        break
else:
    print(999)

split

Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串。

语法:

?
1
str.split(str="", num=string.count(str))

简化:

?
1
str.split("")

reduce

reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算

简单例子:

?
1
2
3
4
5
6
>>> from functools import reduce
>>> def fn(x, y):
        return x * 10 + y
 
>>> reduce(fn, [1, 3, 5, 7, 9])
13579

我们把最近的知识结合起来做一道题

输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

?
1
2
3
4
5
result=""
for i in input()[::-1]:
    if i not in result:
        result+=i
print(result)

sorted

?
1
2
3
4
5
>>> 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]

我们再看一个字符串排序的例子:

?
1
2
>>> sorted(['bob', 'about', 'Zoo', 'Credit'])
['Credit', 'Zoo', 'about', 'bob']

我们给sorted传入key函数,即可实现忽略大小写的排序:

?
1
2
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
['about', 'bob', 'Credit', 'Zoo']

要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True:

?
1
2
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
['Zoo', 'Credit', 'bob', 'about']

执行一个字符串表达式,并返回表达式的值

?
1
2
3
4
5
6
7
8
9
10
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85

总结

到此这篇关于python实用的快捷语法技巧的文章就介绍到这了,更多相关python快捷语法技巧内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/jiahuiandxuehui/article/details/118034937

延伸 · 阅读

精彩推荐
  • PythonPython线程池模块ThreadPoolExecutor用法分析

    Python线程池模块ThreadPoolExecutor用法分析

    这篇文章主要介绍了Python线程池模块ThreadPoolExecutor用法,结合实例形式分析了Python线程池模块ThreadPoolExecutor的导入与基本使用方法,需要的朋友可以参考下...

    njulpy5302021-05-09
  • Pythonpython队列通信:rabbitMQ的使用(实例讲解)

    python队列通信:rabbitMQ的使用(实例讲解)

    下面小编就为大家分享一篇python队列通信:rabbitMQ的使用(实例讲解),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    ywq9358822020-12-28
  • PythonPython爬虫基础之XPath语法与lxml库的用法详解

    Python爬虫基础之XPath语法与lxml库的用法详解

    这篇文章主要给大家介绍了关于Python爬虫基础之XPath语法与lxml库用法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    qq52o11932021-04-02
  • Pythonpython的rllib库你了解吗

    python的rllib库你了解吗

    这篇文章主要介绍了python urllib库的使用,帮助大家更好的利用python学习爬虫,感兴趣的朋友可以了解下,希望能够给你带来帮助...

    不怕晚6072022-02-23
  • Pythonpython日志通过不同的等级打印不同的颜色(示例代码)

    python日志通过不同的等级打印不同的颜色(示例代码)

    这篇文章主要介绍了python日志通过不同的等级打印不同的颜色,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,...

    无霸独尊7092021-08-24
  • Python详解Python验证码识别

    详解Python验证码识别

    这几天在写一个程序的时候需要识别验证码,因为程序是Python写的自然打算用Python进行验证码的识别。下面把实现思路分享在脚本之家平台,感兴趣的朋友...

    不得闲3802020-08-10
  • Python基于scrapy实现的简单蜘蛛采集程序

    基于scrapy实现的简单蜘蛛采集程序

    这篇文章主要介绍了基于scrapy实现的简单蜘蛛采集程序,实例分析了scrapy实现采集程序的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 ...

    pythoner3932020-06-09
  • Pythonpython机器学习实战之K均值聚类

    python机器学习实战之K均值聚类

    这篇文章主要为大家详细介绍了python机器学习实战之K均值聚类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    大牙湾8132020-12-27