首页天道酬勤python和java(python3网络爬虫开发实战)

python和java(python3网络爬虫开发实战)

admin 12-11 23:41 185次浏览

现在写代码的门槛很低,孩子也开始编程了,但是从代码的风格就能一眼看出编码水平。是的,写代码很容易,写可读的代码也很容易,但是写可读、优雅、高效的代码需要经验的积累。今天,我将分享10个技巧,帮助您编写更优雅、更具象征性的Pythonic代码。

1、三元表达式

通常,条件表达式如下:

条件=真

if条件:

x=1

else:

x=0

打印(x)

更容易阅读,更优雅,代码更少。以下是它的工作原理:

条件=真

如果条件为0,则x=1

打印(x)

这是三元表达式。问号表达式类似于其他语言。

2、使用下划线分隔大数

num1=100000000

num2=10000000

总计=num1 num2

打印(总计)

# 110000000

可以这样写

num1=10_000_0000

num2=10_000_000

总计=num1 num2

打印(总计)

# 110000000

如果要使用逗号分隔输出结果,也可以这样做:

num1=10_000_0000

num2=10_000_000

总计=num1 num2

打印(f'{total:} ')

# 110,000,000

这使得大量的数字看起来更容易被人类阅读。

00-1010通常,打开文件的操作如下:

f=打开(' text.txt ',' r ')

file_contents=f.read()

f.close()

words=file _ contents.split(')

字数=len(字数)

打印(字数)

更好的做法是将上下文管理器与一起使用,这样Python解释器将自动处理文件关闭操作。这种用法可以扩展到更多IO操作的地方,而关机操作就省略了:

使用open('text.txt ',' r ')作为f:

file_contents=f.read()

words=file _ contents.split(')

字数=len(字数)

打印(字数)

3、使用上下文管理器with

姓名=['dvid ','小明','李雷','韩梅梅']

索引=0

对于名称中的名称:

打印(索引、名称)

索引=1

获取列表索引可以这样使用:

名称=['dvid ','小明','李雷','韩梅梅']

对于索引,枚举(名称):中的名称

打印(索引、名称)

4、使用 enumerate

当有两个列表需要逐个映射时,通常,您可以这样写:

名称=['无聊牛排',' wxdxlb ','和平摩托车','彼特丁拉基']

角色=['冷艳的信封','纯红酒','艾莉亚史塔克','彩色棉花糖']

对于索引,枚举(名称):中的名称

Print(f'{name}扮演{roles [index]} ')

如果使用zip,更改会更容易:

名称=['无聊牛排',' wxdxlb ','和平摩托车','彼特丁拉基']

角色=['冷艳的信封','纯红酒','艾莉亚史塔克','彩色棉花糖']

对于名称,zip中的角色(名称,角色):

打印(f“{ name }”扮演{role})

输出结果是全部

无聊扒玩冷艳的信封。

Wxdxlb播放纯红酒

和平摩托扮演艾莉亚史塔克。

彼特丁拉基演奏彩色棉花糖。

Zip支持多个可重复对象,例如:

a=[(a ',' b ',' c']

b=[1,2,3,4,5]

c=['A ',' B ',' C ',' D']

列表(邮政编码(a,b,c)]

[('a ',1,' A '),(' B ',2,' B ',(' C ',3,' C')]

后方地带

p 自动按最短的列表来进行组合映射,比自己编码代码容错性要高得多。

6、开箱

一般的变量赋值:

a,b,c = 1,2,3

当变量更多时还可以这样灵活赋值:

>>> a,b,*c,d=(1,2,3,4,5,6) >>> print("a=",a,"b=",b,"c=",c,"d=",d) a= 1 b= 2 c= [3, 4, 5] d= 6

这种方式叫就做开箱,命名非常形象。

7、输入密码时使用 getpass

获取用户输入时, input 会回显输入的字符,当输入的是密码时,将会暴露密码,因此输入密码时请使用 getpass 模块,不回显输入的字符,起到保护密码的作用:

>>> password = input("请输入密码:") 请输入密码:mypassword >>> password 'mypassword' >>> from getpass import getpass >>> password2 = getpass("请输入密码:") 请输入密码: >>> password2 '123456' >>>

8、使用 map 函数

map(function, iterable, ...)

map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。使用方法:

>>>def square(x) : # 计算平方数 ... return x ** 2 ... >>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方 [1, 4, 9, 16, 25] >>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数 [1, 4, 9, 16, 25] # 提供了两个列表,对相同位置的列表数据进行相加 >>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) [3, 7, 11, 15, 19]

9、使用 reduce 函数

reduce() 函数会对参数序列中元素进行累积。函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。使用方法如下:

>>>def add(x, y) : # 两数相加 ... return x + y ... >>> reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5 15 >>> reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数 15

语法reduce() 函数语法:

reduce(function, iterable[, initializer])

10、使用 help dir 函数获取帮助

当没有网,没有手册时,如何获取一个模块的使用方法呢? 我们可以直接进入 python 解释器环境,使用 help 和 dir 函数:

>>> import smtpd >>> help(smtpd) Help on module smtpd: NAME smtpd - An RFC 5321 smtp proxy with optional RFC 1870 and RFC 6531 extension s. DESCRIPTION Usage: %(program)s [options] [localhost:localport [remotehost:remoteport]] Options: --nosetuid -n This program generally tries to setuid `nobody', unless this flag is set. The setuid call will fail if this program is not run as root ( in which case, use this flag). --version -V Print the version number and exit. --class classname -c classname >>> from datetime import datetime >>> dir(datetime) ['__add__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__forma t__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_su bclass__', '__le__', '__lt__', '__ne__', '__new__', '__radd__', '__reduce__', '_ _reduce_ex__', '__repr__', '__rsub__', '__setattr__', '__sizeof__', '__str__', ' __sub__', '__subclasshook__', 'astimezone', 'combine', 'ctime', 'date', 'day', ' dst', 'fold', 'fromisoformat', 'fromordinal', 'fromtimestamp', 'hour', 'isocalen dar', 'isoformat', 'isoweekday', 'max', 'microsecond', 'min', 'minute', 'month', 'now', 'replace', 'resolution', 'second', 'strftime', 'strptime', 'time', 'time stamp', 'timetuple', 'timetz', 'today', 'toordinal', 'tzinfo', 'tzname', 'utcfro mtimestamp', 'utcnow', 'utcoffset', 'utctimetuple', 'weekday', 'year'] >>>

赛车每天赚1000的方法add(x, y) : # 两数相加 ... return x + y ... >>> reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5 15 >>> reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数 15

语法reduce() 函数语法:

reduce(function, iterable[, initializer])

10、使用 help dir 函数获取帮助

当没有网,没有手册时,如何获取一个模块的使用方法呢? 我们可以直接进入 python 解释器环境,使用 help 和 dir 函数:

>>> import smtpd >>> help(smtpd) Help on module smtpd: NAME smtpd - An RFC 5321 smtp proxy with optional RFC 1870 and RFC 6531 extension s. DESCRIPTION Usage: %(program)s [options] [localhost:localport [remotehost:remoteport]] Options: --nosetuid -n This program generally tries to setuid `nobody', unless this flag is set. The setuid call will fail if this program is not run as root ( in which case, use this flag). --version -V Print the version number and exit. --class classname -c classname >>> from datetime import datetime >>> dir(datetime) ['__add__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__forma t__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_su bclass__', '__le__', '__lt__', '__ne__', '__new__', '__radd__', '__reduce__', '_ _reduce_ex__', '__repr__', '__rsub__', '__setattr__', '__sizeof__', '__str__', ' __sub__', '__subclasshook__', 'astimezone', 'combine', 'ctime', 'date', 'day', ' dst', 'fold', 'fromisoformat', 'fromordinal', 'fromtimestamp', 'hour', 'isocalen dar', 'isoformat', 'isoweekday', 'max', 'microsecond', 'min', 'minute', 'month', 'now', 'replace', 'resolution', 'second', 'strftime', 'strptime', 'time', 'time stamp', 'timetuple', 'timetz', 'today', 'toordinal', 'tzinfo', 'tzname', 'utcfro mtimestamp', 'utcnow', 'utcoffset', 'utctimetuple', 'weekday', 'year'] >>>

云数据库 SQL Server UDB计算机毕业设计ssm汽车租赁管理系统n5s69系统+程序+源码+lw+远程部署jquery中子元素选择器和后代元素选择器有哪些区别
前端html(Java 正则表达式) python匿名函数lambda(lambda用法)
相关内容