头歌-Python程序设计-正则表达式入门

第1关:查找第一个匹配的字符串

编程要求

根据提示,在右侧编辑器 Begin-End 部分补充代码,具体任务如下:

  • 导入相关包;

  • 查看此信息是不是 张明 的信息,查找结果存储在 is_zhangming 变量中。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:张伟 86-14870293148; 预期输出: None

测试输入:张明; 预期输出: (0,2)


开始你的任务吧,祝你成功!

# coding=utf-8

# 在此导入python正则库
########## Begin ##########
import re 

########## End ##########
check_name = input()

# 在此使用正则匹配'张明'的信息,结果存储到is_zhangming中
########## Begin ##########
is_zhangming=re.search(r'张明',check_name)

########## End ##########
if is_zhangming is not None:
    print(is_zhangming.span())
else:
    print(is_zhangming)


第2关:基础正则表达式--字符组

编程要求

根据提示,在右侧编辑器 Begin-End 部分补充代码,具体任务如下:

  • 从文本中快速匹配到 python 和 Python 的小程序,输出匹配到的所有内容。
测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:I LIKE Python3 and i like python2.7; 预期输出: [Python, python]


开始你的任务吧,祝你成功!

# coding=utf-8

import re

input_str = input()

# 编写获取python和Python的正则,并存储到match_python变量中
########## Begin ##########
match_python=re.findall(r'[pP]ython',input_str)

########## End ##########
print(match_python)

第3关:基础正则表达式--区间与区间取反

编程要求

请仔细阅读右侧代码,根据提示,在右侧编辑器 Begin-End 部分补充代码,具体任务如下:

  • 匹配数字字符信息;

  • 匹配不是数字字符的信息。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:Python3 and python2.7; 预期输出: ['3', '2', '7'] ['P', 'y', 't', 'h', 'o', 'n', ' ', 'a', 'n', 'd', ' ', 'p', 'y', 't', 'h', 'o', 'n', '.']


开始你的任务吧,祝你成功!

# coding=utf-8

import re

input_str = input()

# 1、编写获取到数字的正则,并输出匹配到的信息
########## Begin ##########
a=re.findall(r'[0-9]',input_str)
print(a)
########## End ##########

# 2、编写获取到不是数字的正则,并输出匹配到的信息
########## Begin ##########
b=re.findall(r'[^0-9]',input_str)
print(b)
########## End ##########



第4关:基础正则表达式--快捷方式

编程要求

请仔细阅读右侧代码,根据提示,在右侧编辑器 Begin-End 部分补充代码,具体任务如下:

  • 匹配单词字符,并输出;
  • 匹配不是单词的字符,并输出。
测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:Python3 and python2.7; 预期输出: ['P', 'y', 't', 'h', 'o', 'n', '3', 'a', 'n', 'd', 'p', 'y', 't', 'h', 'o', 'n', '2', '7'] [' ', ' ', '.']


开始你的任务吧,祝你成功!

# coding=utf-8

import re

input_str = input()

# 1、编写获取到单词的正则,并输出匹配到的信息
########## Begin ##########
a=re.findall(r'\w',input_str)
print(a)
########## End ##########

# 2、编写获取到不是单词的正则,并输出匹配到的信息
########## Begin ##########
b=re.findall(r'\W',input_str)
print(b)
########## End ##########



第5关:字符串的开始与结束

编程要求

请仔细阅读右侧代码,根据提示,在右侧编辑器 Begin-End 部分补充代码,具体任务如下:

  • 匹配以 educoder 开头的字符串,并存储到变量 a
  • 匹配以 educoder 结束的字符串,并存储到变量 b
测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:educoder can help you; 预期输出: (0, 8) None

测试输入:i love educoder; 预期输出: None (7, 15)

测试输入:you can make educoder better 预期输出: None None


开始你的任务吧,祝你成功!

# coding=utf-8

import re

input_str = input()

# 1、编写获取到以educoder开头的正则,并存储到变量a
########## Begin ##########
a=re.search(r'^educoder',input_str)

########## End ##########
if a is not None:
    print(a.span())
else:
    print(a)


# 2、编写获取到以educoder结束的正则,并存储到变量b
########## Begin ##########
b=re.search(r'educoder$',input_str)

########## End ##########
if b is not None:
    print(b.span())
else:
    print(b)


第6关:任意字符

编程要求

请仔细阅读右侧代码,根据提示,在右侧编辑器 Begin-End 部分补充代码。,具体任务如下:

  • 匹配出测试集中的包含 (任意字符)ython 的子字符串,并输出数组子字符串。
测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:2ython; 预期输出:['2ython']

测试输入:ython; 预期输出:[]


开始你的任务吧,祝你成功!

# coding=utf-8

import re

input_str = input()

# 编写获取(任意字符)+ython的字符串,并存储到变量a中
########## Begin ##########
a=re.findall(r'.ython',input_str)

########## End ##########
print(a)

第7关:可选字符

编程要求

请仔细阅读右侧代码,根据提示,在右侧编辑器 Begin-End 部分补充代码。具体任务如下:

  • 匹配出字符串中的 she 或者 he ,并输出匹配到的信息。
测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:she is; 预期输出:she

测试输入:he;; 预期输出:he


开始你的任务吧,祝你成功!

# coding=utf-8

import re

input_str = input()

# 编写获取she或者he的字符串,并存储到变量a中
########## Begin ##########
a=re.findall(r's?he',input_str)

########## End ##########
print(a)

第8关:重复区间

编程要求

请仔细阅读右侧代码,根据提示,在右侧编辑器 Begin-End 部分补充代码。匹配并输出符合如下要求的字符串:

1、字符串中重复 2 个数字的子字符串; 2、重复 4-7 个数字组成的子字符串。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:张3:0731-8825951,李4:0733-8794561; 预期输出:['0731', '8825951', '0733', '8794561']


开始你的任务吧,祝你成功!

# coding=utf-8

import re

input_str = input()
# 1、基于贪心模式匹配字符串中重复出现2个数字的子字符串,并存储到变量a。

########## Begin ##########
a=re.findall(r'[\d]{2}',input_str)

########## End ##########
print(a)

# 2、基于贪心模式匹配字符串中重复出现4-7个数字的子字符串,并存储到变量b。
########## Begin ##########
b=re.findall(r'[\d]{4,7}',input_str)

########## End ##########
print(b)


第9关:开闭区间与速写 

编程要求

请仔细阅读右侧代码,根据提示,在右侧编辑器 Begin-End 部分补充代码。,匹配并输出符合如下要求的字符串:

  • 重复数字 5 次及以上的子字符串;

  • 重复数字 1 次及以上的子字符串。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:0731-8859456; 预期输出: ['8859456'] ['0731', '8859456']


开始你的任务吧,祝你成功!

# coding=utf-8

import re

input_str = input()
# 1、基于贪心模式匹配字符串中连续出现5个数字以上的子字符串,并存储到变量a。

########## Begin ##########
a=re.findall(r'[\d]{5,}',input_str)

########## End ##########
print(a)

# 2、匹配字符串中都为数字的子字符串,并存储到变量b。
########## Begin ##########
b=re.findall(r'[\d]+',input_str)

########## End ##########
print(b)

<think>好的,我现在需要帮用户解决如何在Spark代码的指定区域打印版本号的问题。首先,用户提到他们想在Begin-End区域内补充代码,所以我要先确定他们使用的编程语言,可能是Scala或者Python,因为Spark支持这两种。不过根据示例中的Python代码,可能用户更倾向于Python的解决方案。不过需要进一步确认。 接下来,我需要回忆Spark中获取版本号的方法。在Spark中,通常可以通过SparkContext对象来获取版本信息。在Python的PySpark中,SparkContext的version属性可以直接获取版本号。例如,sc.version会返回当前Spark的版本字符串。所以用户只需要在Begin-End区域内添加一行打印这个属性的代码即可。 然后,我需要检查用户提供的代码示例是否有可参考的部分。用户提供的引用中有一个Python代码示例,使用了spark-shell命令,但spark-shell是Scala的交互式环境,而PySpark使用的是pyspark。不过这可能只是示例中的一部分,不影响解决方案。用户的问题是关于打印版本号,所以关键是找到正确的方法。 另外,用户提到要在指定区域补充代码,所以需要确保给出的代码示例结构正确,并且将打印语句放在正确的位置。例如,如果用户已有的代码中已经创建了SparkContext对象(通常命名为sc),那么直接打印sc.version即可。如果没有,可能需要先获取SparkContext实例。 假设用户的代码结构大致如下: # Begin ... # 需要在这里添加代码 ... # End 那么正确的做法是在BeginEnd之间添加print("Spark版本号:", sc.version)。但需要注意是否正确访问了sc变量。如果用户的环境中没有sc变量,可能需要通过SparkSession来获取。例如,在Spark 2.0之后,通常使用SparkSession.builder.getOrCreate()来创建会话,然后通过spark.sparkContext.version获取版本号。 因此,可能需要考虑两种可能性:使用现有的sc变量,或者通过SparkSession获取。为了确保代码的通用性,最好同时提供两种方法,但根据常见情况,使用sc.version更为直接,尤其是在较旧的代码或示例中。 此外,还要确保代码的语法正确,比如在Python中使用print函数,正确的缩进等。如果用户使用的是Scala,代码会有所不同,比如println(sc.version),但根据用户的问题和示例中的Python代码,应该以Python为例。 最后,需要验证这个解决方案是否有效。例如,在Spark环境中运行print(sc.version)是否能正确输出版本号。根据Spark的文档,这应该是可行的。同时,引用中的示例提到通过spark-shell运行代码,但PySpark同样支持类似的操作,所以应该没有问题。</think>在Spark代码中打印版本号可以通过`SparkContext`对象的`version`属性实现。以下是具体实现步骤: **实现步骤:** 1. 在Begin-End区域内添加版本号打印代码 2. 通过`SparkContext`对象获取版本信息 3. 使用print语句输出结果 **示例代码:** ```python # Begin print("Spark版本号:" + sc.version) # End ``` **代码解析:** 1. `sc`是Spark自动创建的`SparkContext`对象[^1] 2. `sc.version`属性存储当前Spark的版本号 3. 打印语句会将版本号输出到执行器日志或控制台 **验证方式:** - 运行代码后可在Executor日志中查看打印结果 - 或通过spark-shell交互式环境直接执行验证[^1]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值