python之07-KeyWords关键字


@Author: liuyangly1
@Date : 2021-07-08 13:40:52
@Blog : https://blog.csdn.net/liuyang_1106
@Github: https://github.com/liuyangly1
@Email : 522927317@qq.com


关键字

关键字说明
and用于表达式运算,逻辑与操作
as用于类型转换
assert断言,用于判断变量或条件表达式的值是否为真
break中断循环语句的执行
class用于定义类
continue继续执行下一次循环
def用于定义函数或方法
del删除变量或者序列的值
elif条件语句 与if else 结合使用
else条件语句条件语句,与if,elif结合使用。也可以用于异常和循环使用
except包括捕获异常后的操作代码,与try,finally结合使用
exec用于执行python语句
for循环语句
finally用于异常语句,出现异常后,始终要执行finally包含的代码块。与try,except结合使用
from用于导入模块,与import结合使用
global定义全局变量
if条件语句,与else,elif结合使用
import用于导入模块,与from 结合使用
in判断变量是否存在序列中
is判断变量是否为某个类的实例
lambda定义匿名函数
not用于表达式运算,逻辑非操作
or用于表达式运算,逻辑或操作
pass空的类,函数,方法的占位符
print打印语句
raise异常抛出操作
return用于从函数返回计算结果
try包含可能会出现异常的语句,与except,finally结合使用
while循环语句
with简化Python的语句
yield用于从函数依次返回值

1. 布尔关键字

False代表假,值为0;True代表真,值为1;

>>> True == 1
True
>>> False == 0
True
>>> isinstance(True, object)
True
>>> isinstance(False, object)
True
>>> isinstance(False, int)
True
>>> isinstance(True, int)
True

注意:False、True、None本质都是object对象,False、True属于int对象。

2. 控制流关键字

  • 语法
if...elif...else...:条件判断;
for...in...:对可迭代对象循环遍历
for...in...else...:遍历正常完成则执行else后的代码;
continue:终止本次循环,继续下一次循环;
break:跳出循环;
while:循环结构;

注意:详细使用,可以见python之06三大流程中循环内容。

3. 逻辑判断关键字

  • 语法
and:表示与
or:表示或;
not:表示非;
in:判断元素是否在容器内;
not in:判断元素是否不再容器内;
is:比较两个变量的内存地址;

扩展:is关键字比较两个变量的内存地址,==比较两个变量的值;

>>> x = [123]
>>> y = [123]
>>> x is y
False
>>> x == y
True

注意:详细使用,可以见python之05运算符中逻辑运算符内容。

4. 异常关键字

  • 语法
try:
	代码1,正常执行块
except A:
	代码2,异常A会执行这里
except B:
    代码2,异常B会执行这里
except:
    代码2,其他异常会执行这里
else:
	代码3,无异常则执行
finally:
	代码4# 注意,无论正常与否都要执行代码4.

raise:主动触发异常;

注意:详细使用,可以见python之10异常处理。

  • demo:文件打开异常处理
>>> try:
...     f = open('1.txt','r')
...     try:
...         context = f.write('abc')
...         print(context)
...     except:
...         raise("错误,文件写入出现异常")
...     finally:
...         f.close()
...         print('关闭打开的文件')
... except Exception as e:
...     print(e)
...
关闭打开的文件
exceptions must derive from BaseException

5. 命令空间关键字

global:将模块空间变量引入到局部空间修改;
nonlocal:将本局部空间的外层空间变量引入到本层局部空间修改,用来嵌套函数内;

注意:详细使用,可以见python之8函数中变量空间。

6. 匿名函数关键字

没有名称的内联函数

  • 语法
lambda [arg1 [, agr2,.....argn]] : expression
  • lambda与map
>>> x = [1, 2, 3]
>>> y = [1, 2, 3]
>>> list(map(lambda x, y : x*y, x, y))
[1, 4, 9]
  • lambda与filter
>>> x = [1, 2, 3]
>>> list(filter(lambda x:x%2==0, x))
[2]
  • lambda与sort
>>> x = [
...     {'name':1, 'date':1999},
...     {'name':2, 'date':2000},
...     {'name':3, 'date':2020},
... ]
>>> x.sort(reverse=True, key=lambda elem: elem["date"])
>>> x
[{'name': 3, 'date': 2020}, {'name': 2, 'date': 2000}, {'name': 1, 'date': 1999}]
  • lambda与max, min
# max(a, b, c, …[, key=func]) -> value
# min(a, b, c, …[, key=func]) -> value

# 字典按值排序
>>> x = {'a':1, 'b':2, 'c':3}
>>> max(x.items(),key=lambda k:k[1])
('c', 3)

# 注意混合数据:
# 默认情况下,max将通过第一个索引比较项目,如果第一个索引是相同的,那么它会比较第二个索引。
>>> x = ['1','100','111','2', 2, 2.57]
>>> max(x, key=lambda i:int(i))
'111'

# 推荐
# max(x, key=int)
# min(x, key=int)
>>> x = ['1','100','111','2', 2, 2.57]
>>> max(x, key=int)
'111'
>>> min(x, key=int)
'1'
  • lambda与reduce:reduce函数是python中的一个二元内建函数,它可以通过传给reduce中的函数(必须是二元函数)依次对数据集中的数据进行操作.
>>> from functools import reduce
>>> a = [2,22,222]
>>> reduce(lambda x,y:x+y,a)
246
  • lambda与深度学习
 net_h1 = BatchNormLayer(net_h1, 
						 act=lambda x: tl.act.lrelu(x, 0.2),
                         is_train=is_train, 
						 name='h1/batchnorm')
  • lambda与列表表达式:lambda表达式不会形成对函数体内变量的记忆,只记录最后一个状态。
>>> y = [lambda :x for x in range(10)]
>>> y  # 9个lambda无参函数lambda :x,每个都会调用x,但是x已经等于9了,所以每次调用都等于9
[<function <listcomp>.<lambda> at 0x000001EDF0D275E8>, <function <listcomp>.<lambda> at 0x000001EDF0D27708>, <function <listcomp>.<lambda> at 0x000001EDF0D274C8>, <function <listcomp>.<lambda> at 0x000001EDF0D04678>, <function <listcomp>.<lambda> at 0x000001EDF0D041F8>, <function <listcomp>.<lambda> at 0x000001EDF0D04168>, <function <listcomp>.<lambda> at 0x000001EDF0D040D8>, <function <listcomp>.<lambda> at 0x000001EDF0D04048>, <function <listcomp>.<lambda> at 0x000001EDF0D04828>, <function <listcomp>.<lambda> at 0x000001EDF0D04318>]
>>> y[0]()  # ()表示调用lambda函数
9
>>> y[1]()
9

>>> y = [lambda x :x for x in range(10)]
>>> y # 9个lambda相同的有参x函数 lambda x:x,输入x,则调用
[<function <listcomp>.<lambda> at 0x000001EDF0D273A8>, <function <listcomp>.<lambda> at 0x000001EDF0D59678>, <function <listcomp>.<lambda> at 0x000001EDF0D59708>, <function <listcomp>.<lambda> at 0x000001EDF0D59798>, <function <listcomp>.<lambda> at 0x000001EDF0D59828>, <function <listcomp>.<lambda> at 0x000001EDF0D598B8>, <function <listcomp>.<lambda> at 0x000001EDF0D59948>, <function <listcomp>.<lambda> at 0x000001EDF0D599D8>, <function <listcomp>.<lambda> at 0x000001EDF0D59A68>, <function <listcomp>.<lambda> at 0x000001EDF0D59AF8>]
>>> y[0](0) 
0 
>>> y[1](0)
0
>>> y[1](5)
5

7. 断言关键字

用于判断一个表达式,在表达式条件为 false 的时候触发异常。

  • 语法
assert expression [, arguments]
  • demo:判断变量是否相等,文件是否存在
>>> x = 1
>>> assert x == 1
>>> assert x == 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError

>>> import os
>>> assert os.path.exists("1.txt")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError

8.None关键字

None:代表空,是python解释器的一个内置的关键字变量,本质是一个object(),类似于C++的NULL。

# None关键字
>>> isinstance(None, object)
True
# 注意None 不等于 0
>>> None == 0
False

9. 函数与模块关键字

from ... import ... #  从模块导入函数
import ...   # 导入模块
import ... as  # 导入模块为什么操作名
return  # 函数返回
pass  # 跳过函数或跳过后续流程,可以用来调试bug等

注意,详细使用,可以见python之8函数与模块。

10. 其他

yield:生成器关键字; 详细使用,可以见python之生成器
del:从上下文堆栈中删除某个对象。

参考

  • [1] [天宇之游-python基础之常用关
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python爬虫可以用于从百度新闻获取多个关键字的相关新闻信息。首先,我们需要导入`requests`和`beautifulsoup4`库来发送HTTP请求并解析网页内容。 接下来,我们可以编写一个函数,其参数为关键字列表,用于获取百度新闻中相关关键字的新闻。函数的主要步骤如下: 1. 定义一个空的新闻列表来存储爬取到的新闻信息。 2. 遍历关键字列表,对于每个关键字,构建一个百度新闻的URL链接。 3. 使用`requests`库发送HTTP GET请求,并将响应的内容保存为HTML格式。 4. 使用`beautifulsoup4`库来解析HTML内容,并提取出新闻信息。可以根据需要提取新闻标题、来源、时间等相关信息。 5. 将提取到的新闻信息存储到新闻列表中。 6. 继续遍历下一个关键字,重复上述步骤。 7. 返回新闻列表作为函数的输出。 下面是一个示例代码: ```python import requests from bs4 import BeautifulSoup def get_news(keywords): news_list = [] for keyword in keywords: url = f"https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&word={keyword}" response = requests.get(url) html_content = response.text soup = BeautifulSoup(html_content, "html.parser") news_items = soup.find_all("div", class_="result") for item in news_items: title = item.find("h3").get_text() source = item.find("span", class_="c-color-gray").get_text() time = item.find("span", class_="c-color-gray2").get_text() news_list.append({ "title": title, "source": source, "time": time }) return news_list ``` 我们可以调用这个函数,传入关键字列表来获取百度新闻中相关的新闻信息。例如: ```python keywords = ["Python", "爬虫", "数据分析"] news = get_news(keywords) for item in news: print(item["title"]) print(item["source"]) print(item["time"]) print() ``` 以上就是使用Python爬虫从百度新闻获取多个关键字相关新闻的一个简单示例。当然,具体的实现方式还可以根据具体需求进行调整和优化。 ### 回答2: Python爬虫是一种利用Python编程语言编写的程序,可以自动化地获取互联网上的信息。百度新闻是百度搜索引擎中的一个板块,提供了各种新闻资讯。多关键字指的是可以通过设置多个关键字来搜索获取更准确的结果。 使用Python爬虫爬取百度新闻多关键字的步骤如下: 1. 导入必要的库,例如requests、bs4等。 2. 设置搜索的URL,即百度新闻的搜索接口,可以在URL中加入关键字等参数。 3. 调用requests库发送HTTP请求,获取返回的网页内容。 4. 使用BeautifulSoup库解析网页内容,提取新闻信息。 5. 遍历解析后的结果,提取所需的信息,例如标题、摘要、日期等。 6. 可以将提取到的信息保存到本地文件或数据库中。 7. 可以在代码中设置循环、分页等功能,获取更多的新闻信息。 8. 可以根据需要对获取的新闻信息进行数据清洗、分析等。 使用Python爬虫爬取百度新闻多关键字可以帮助我们快速获取感兴趣的新闻内容,节省人工搜索的时间和精力。但在进行爬取时,需要遵守相关法律法规,尊重网站的规定,并确保合法安全地使用爬虫技术。 ### 回答3: Python爬虫可以用来抓取百度新闻的多个关键字。首先,我们需要导入必要的库,如requests用于发送HTTP请求,beautifulsoup用于解析网页内容。 然后,我们可以通过构造URL来搜索百度新闻。URL的格式通常包括搜索关键字、起始页码和每页显示的新闻数量等。我们可以使用字符串拼接的方式构造URL,其中搜索关键字可以是多个关键字的组合,通过连接符进行拼接。 接下来,我们可以使用requests库发送get请求获取网页内容。将构造好的URL作为参数传递给requests.get()方法,然后使用response.text来获取网页的HTML源代码。 然后,我们可以使用beautifulsoup库对网页内容进行解析。首先,将获取到的HTML源代码传递给beautifulsoup,并指定解析器类型。然后,可以使用beautifulsoup提供的一些方法,如find_all()来查找包含新闻内容的div元素。 在查找到对应的div元素后,我们可以通过遍历其中的子元素,提取出新闻的标题、发布时间和链接等信息。可以通过调用元素的get_text()方法获取文本内容,以及通过访问元素的属性来获取链接。 最后,可以将获取的新闻信息保存到本地或者进行进一步的处理和分析。可以将信息存储到一个列表或字典中,方便后续的操作。 总而言之,通过使用Python编写爬虫程序,我们可以实现对百度新闻的多个关键字进行搜索,并提取出相关的新闻标题、发布时间和链接等信息。这样就可以方便地获取和处理新闻内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值