Python基础语法-小白训练题

题目1 [基础概念]

下列属于浮点数据的是( D )

A. True

B. -8

C. "8.0"

D. -8.0

题目2 [基础概念]

在python中,字符串是( A )

A. 用单引号或者双引号括起来都可以

B. 只能用双引号括起来

C. 只能用单引号括起来

D. 用圆括号括起来

题目3 [基础概念]

数据 10.0 是( B ) 类型的

A. 整数类型

B. 浮点类型

C. 布尔类型

D. 字符串类型

题目4 [基础概念]

python程序的扩展名是( D )

A. exe

B. doc

C. txt

D. py

题目5 [加强训练]

题干

打印自己的名片,输出以下信息:

  • 姓名:xxx

  • 年龄:xxx

  • 体重:xxx

  • 手机号:xxx

  • 家庭住址:xxx

训练目标

print()函数的使用

训练提示

在 python 中想要打印输出,需要使用什么函数?

参考方案

在 python 中想要打印输出,需要使用 print() 函数。

操作步骤

使用print()函数直接输出每一个信息。

参考答案
# 姓名:xxx
print("姓名:刘部住")
# 年龄:xxx
print("年龄:21")
# 体重:xxx
print("体重:66kg")
# 手机号:xxx
print("手机号:xxxxxxx")
# 家庭住址:xxx
print("家庭住址:xxxxxx")

题目6 [加强训练]

题干

按以下要求书写代码:

# 1. 定义一个变量 name,存储你的名字
​
# 2. 定义一个变量 age,存储你的年龄
​
# 3. 定义一个变量 height,存储你的身高
​
# 4. 按照以下格式输出各变量的值在一行上.
TOM 18 176.8
​
# 5. 按照以下格式输出变量的值.
姓名:TOM
年龄:18
身高:176.8
​
# 6. 分别查看变量 name, age, height 的类型
训练目标
  1. 定义变量的语法;

  2. 标识符命名规则;

  3. 字符串、整型、浮点型数据书写方法。

训练提示
  1. 定义变量的语法规则是什么?

  2. 标识符命名规则具体要求是什么?

  3. 用户个人信息的姓名、年龄、身高分别是什么数据类型,如何书写?如何转换?

  4. 使用 type() 函数查看变量的类型

参考方案
  1. 定义变量的语法:变量名 = 值

  2. 标识符命名规则:由数字、字母、下划线组成;不能数字开头,可以以数字结尾;严格区分大小写;不能使用内置关键字;

  3. 用户的姓名是字符串数据类型;年龄是整型数据类型;体重为浮点型数据类型。

参考步骤

定义3个变量,分别存储用户姓名、年龄、体重数据;

参考答案
# 1. 定义一个变量 name,存储你的名字
name = "张三"
# 2. 定义一个变量 age,存储你的年龄
age = 35
# 3. 定义一个变量 height,存储你的身高
height = 195.5
# 4. 按照以下格式输出各变量的值在一行上.
print(name, age, height)
​
# 5. 按照以下格式输出变量的值.
姓名:TOM
年龄:18
身高:176.8
print("姓名:", name)
print("年龄:", age)
print("身高:", height)
​
​
# 6. 分别查看变量 name, age, height 的类型
print(type(name))
print(type(age))
print(type(height))

题目7 [加强训练]

题干

已知用户姓名、年龄、体重数据,

要求分别使用5种方式在控制台格式化输出用户信息,

例如:名: TOM , 年龄: 18 , 体重: 66.6 公斤。

# 定义一个变量name,保存自己的名字
​
# 定义一个变量age,保存自己的年龄
​
# 定义一个变量weight,保存自己的体重
​
# 要求所有变量输出一行格式为: 姓名: TOM , 年龄: 18 , 体重:  66.6 公斤
​
训练提示

方式1: print打印多个内容

方式2: +拼接多个小字符串

方式3: %s给字符串,整数,浮点占位 原理: 把整数和浮点都转换为字符串了

方式4: %s:字符串占位 %d:整数占位 %f:浮点数占位 注意: %d和%f可以用x.y做精度控制

方式5: f"...{变量名}..." 注意: 也可以用:x.y做精度控制

参考答案
格式化字符串

注意: 今日练习5种,以后会一种方式即可

# 定义一个变量name,保存自己的名字
name = "张三"
# 定义一个变量age,保存自己的年龄
age = 18
# 定义一个变量weight,保存自己的体重
weight = 95.6
# 要求所有变量输出一行格式为: 姓名: TOM , 年龄: 18 , 体重:  66.6 公斤
# 方式1: print打印多个内容
print("姓名:", name, ", 年龄:", age, ",体重:",weight, "公斤")
# 方式2: +拼接多个小字符串
s1 = "姓名:" + name + ", 年龄:" + str(age) + ", 体重:" + str(weight) + "公斤"
print(s1)
# 方式3: %s给字符串,整数,浮点占位                   原理: 把整数和浮点都转换为字符串了
s2 = "姓名:%s, 年龄:%s, 体重:%s 公斤" % (name, age, weight)
print(s2)
# 方式4: %s:字符串占位  %d:整数占位  %f:浮点数占位   注意: %d和%f可以用x.y做精度控制
s3 = "姓名:%s, 年龄:%d, 体重:%.1f 公斤" % (name, age, weight)
print(s3)
# 方式5: f"...{变量名}..."                  注意: 也可以用:x.y做精度控制
s4 = f"姓名:{name},年龄:{age},体重:{weight}公斤"
print(s4)

题目8 [加强训练]

题干

用户登录系统:用户输入用户名和密码,在控制台格式化输出用户输入的用户名和密码。效果如下:

请输入用户名:binzi 请输入密码:123456 您输入的用户名是binzi, 密码是123456

训练目标

输入功能的使用

训练提示
  1. 在Python中,接收用户输入的数据要使用什么函数?

  2. 使用输入功能接收到的用户输入的数据是什么数据类型? 如何格式化输出?

参考方案
  1. 在Python中,接收用户输入的数据使用input()函数。

  2. input()函数接收到的用户输入的数据是字符串类型;使用格式化符号%sf{表达式}格式化输出。

参考步骤
  1. 书写2个input(),分别接收用户输入的用户名和密码。

  2. 格式化输出用户输入的用户名和密码数据。

参考答案
"""
请输入用户名:binzi
请输入密码:123456
您输入的用户名是binzi, 密码是123456
"""
username = input("请输入用户名:")
password = input("请输入密码:")
print(f"您输入的用户名是:{username},密码是:{password}")

题目9 [加强训练]

题干

书写程序,制作一个加法计算器。

用户依次输入2个整数,系统自动进行加法运算,并打印结果。

训练目标
  1. 运算符的使用;

  2. input()接收到的数据的数据类型;

  3. 数据类型装换。

训练提示
  1. 加法运算符号是什么?加法运算的数据要求的数据类型是什么?

  2. input()接收到的数据是什么数据类型?

  3. 如何把input()接收到的数据转换成int整型?

参考方案
  1. 加法运算符是+,加法运算的数据要求的数据类型是整数或浮点数;

  2. input()接收到的数据是字符串类型;

  3. 字符串转整型使用int()

参考步骤
  1. 书写2个input(),分别接收2个整数的输入;

  2. 将接收到的2个数据分别转换成整型, 并进行加法运算;

  3. 打印结果。

参考答案
"""
书写程序,制作一个加法计算器。
用户依次输入2个整数,系统自动进行加法运算,并打印结果。
"""
print("这是一个加法计算器,请按照要求输入两个整数,我会为您计算两数之和并打印!!!")
x = int(input("请输入第一个整数:"))
y = int(input("请输入第二个整数:"))
sum = x + y
print(f"{x} + {y}的结果是:{sum}")

题目10 [综合训练]

题干

开发程序:购物车功能。

已知A网站苹果和橘子两种水果单价(具体如下),用户根据自己的需求输入斤数, 系统计算总价并打印结果。

# 水果单价
apple_price = 6.6
orange_price = 5
训练目标
  1. input()接收到的数据是字符串类型,按需求转换数据类型;

  2. 运算符的使用。

训练提示
  1. 用户根据自己的需要数据购买水果的斤数,这个斤数可能是小数,可能是整数,如何转换数据类型计算总价?

  2. 计算总价需要使用到哪些运算符?

参考方案
  1. 用户输入的斤数可能是小数也可能是整数形式的字符串数据,需要转换数据类型为浮点型才能做总价结果运算。因为, 如果用户输入小数,使用int()转换的时候程序会报错; 并且,一个工作中,购物钱数需要精确到小数点后2位。

  2. 计算总价需要使用乘法运算符* 和 加法运算符+

参考步骤
  1. 用户分别输入购买苹果和橘子的斤数,并转换数据类型为浮点型;

  2. 计算总价: 总价 = 苹果单价 * 苹果斤数 + 橘子单价 * 橘子斤数;

  3. 打印结果

参考答案
"""
开发程序:购物车功能。
已知A网站苹果和橘子两种水果单价(具体如下),用户根据自己的需求输入斤数, 系统计算总价并打印结果。
"""
# 水果单价
apple_price = 6.6
orange_price = 5
# 获取购买重量
apple_weight = float(input("请输入苹果的公斤数:"))
orange_weight = float(input("请输入橘子的公斤数:"))
# 计算总价
sum_price = apple_price * apple_weight + orange_price * orange_weight
print(f"苹果和橘子的总价为:{sum_price}元")

Python判断语句

题目1 [加强训练]
题干

用户输入年龄,如果年龄超过60岁,输出:可以退休了。

训练目标
  1. if语句基础语法的使用;

  2. 比较运算符的使用。

训练提示
  1. 用户输入年龄,Python语言中,如何接收用户输入的数据?接收到的数据的数据类型是什么?

  2. 超过60岁,用哪种运算符?

  3. 年龄超过60岁是题目中唯一的一种情况,使用哪种if语句完成逻辑判断?

参考方案
  1. input()接收用户输入的年龄,需要注意这里接收到的数据的数据类型是str;

  2. 超过60岁,使用比较运算符中的>>=

操作步骤
  1. input()接收用户输入的年龄,并转换数据类型为int;

  2. 如果年龄大于60条件成立,则输出:可以退休了

参考答案
# 用户输入年龄,如果年龄超过60岁,输出:可以退休了。
# 获取用户年龄
age = int(input("请您输入年龄:"))
# 判断年龄是否达到退休
if age > 60:
    print("可以退休了!!!")
题目2 [加强训练]
题干

用户输入年龄,如果年龄超过60岁,输出:"可以退休了", 否则,输出:"年轻人,加油干!"

训练目标

if…else语法

训练提示

题目描述了2种情况(年龄超过60岁和不超过60岁),涉及到2中情况需要判断的时候,使用哪种if语句格式?

参考方案

在Python中,能够判断两种情况的时候需要使用if…else…语句。

操作步骤
  1. input()接收用户输入的年龄,并转换数据类型为int;

  2. 如果用户输入的年龄大于60,则输出"可以退休了"; 条件不成立则输出:小伙子,加油干!

参考答案
# 用户输入年龄,如果年龄超过60岁,输出:可以退休了。
# 获取用户年龄
age = int(input("请您输入年龄:"))
# 判断年龄是否达到退休
if age > 60:
    print("可以退休了!!!")
else:
    print("小伙子,加油干")

题目3 [加强训练]

题干

用户输入年龄,按照如下标准书写程序,判断用户处于哪个年龄阶段,并提示:您的年龄是xx: 青少年/青年/中年/老年。

年龄段划分标准:0-17岁为青少年;18-35岁为青年;36-59为中年,60-99岁为老年。

训练目标
  1. elif多重判断写法;

  2. 逻辑运算符的使用方法。

训练提示
  1. 本题中年龄段分为青少年、青年、中年、老年四种情况需要判断,在Python中,判断多种情况需要使用哪种if语句格式?

  2. 每个年龄段有最低和最高年龄限制,使用哪种运算符能完成对最低和最高年龄同时判断?

参考方案
  1. 在Python中,判断多种情况需要使用elif多重判断写法;

  2. 对每个年龄段的最低和最高年龄同时限制,需要使用逻辑运算符中的and

操作步骤
  1. input()接收用户输入的年龄,并转换数据类型为int;

  2. if…elif对不同的年龄段进行判断。

参考答案
# 年龄段划分标准:0-17岁为青少年;18-35岁为青年;36-59为中年,60-99岁为老年。
# 获取用户年龄
age = int(input("请您输入年龄:"))
if age > 0:
    if age <= 17:
        print("青少年")
    elif age <= 35:
        print("青年")
    elif age <= 59:
        print("中年")
    elif age <= 99:
        print("老年")
    else:
        print("老古董!!!!")
else:
    print("您输入的年龄有误!!!")

题目4 [加强训练]

题干

用户登录输入验证码,已知验证码是axyz, 验证码正确提示可以登录,否则输出:提示验证码错误。

训练目标

比较运算符==的使用方法

训练提示

如何判断用户输入的验证码和axyz相同?

参考方案

判断相等使用比较运算符==

操作步骤
  1. 用户输入验证;

  2. if…else...判断用户输入的验证码是否和axyz相等。

参考答案
# 定义已知的验证码
yzm = "axyz"
# 获取用户输入的验证码
user_yzm = input("请输入您的验证码:")
# 判断验证码是否正确
if user_yzm == yzm:
    print("可以登录")
else:
    print("验证码错误")

题目5 [综合训练]

题干

制作用户登录系统:已知A用户注册的用户名为binzi,密码是123456。具体要求如下:

登录时需要先验证验证码(固定验证码为qwer),再验证码用户名、密码。

提示:系统先验证验证码是否正确,正确后再验证用户名和密码!!!

训练目标
  1. if…else语句格式

  2. 比较运算符== 和 逻辑运算符

  3. if嵌套语句格式

训练提示
  1. 如何书写程序可以先验证验证码的正确性,验证码正确后再验证用户名和密码?

  2. 如何判断用户输入的验证码的正确性?

  3. 如何判断用户名和密码的正确性?

  4. 逻辑运算符 and并且 or或者 not取反

参考方案
  1. 先判断验证码的正确性,再验证用户名和密码,需要使用if嵌套写法;

  2. 判断用户输入的验证码/用户名/密码的正确性要使用到比较运算符==

  3. 登录功能要求用户名和密码必须同时正确,所以这里要使用到逻辑运算符and

操作步骤
  1. 准备用户名、密码、验证码等数据;

  2. 用户输入用户名、密码、验证码;

  3. 判断验证码是否为qwer

  4. 如果验证码为qwer,再验证用户名和密码的正确性。

参考答案
# 定义已知的验证码
yzm = "qwer"
# 获取用户输入的验证码
user_yzm = input("请输入您的验证码:")
# 判断验证码是否正确
if user_yzm == yzm:
    print("可以登录")
    # 获取用户的用户名和密码
    username = input("请输入您的用户名:")
    password = input("请输入您的密码")
    if username == "binzi" and password == "123456":
        print("登陆成功!!!")
    else:
        print("用户名或者密码错误!!!")
else:
    print("验证码错误")

Python判断语句

题目1 [加强训练]
题干

用户输入年龄,如果年龄超过60岁,输出:可以退休了。

训练目标
  1. if语句基础语法的使用;

  2. 比较运算符的使用。

训练提示
  1. 用户输入年龄,Python语言中,如何接收用户输入的数据?接收到的数据的数据类型是什么?

  2. 超过60岁,用哪种运算符?

  3. 年龄超过60岁是题目中唯一的一种情况,使用哪种if语句完成逻辑判断?

参考方案
  1. input()接收用户输入的年龄,需要注意这里接收到的数据的数据类型是str;

  2. 超过60岁,使用比较运算符中的>>=

操作步骤
  1. input()接收用户输入的年龄,并转换数据类型为int;

  2. 如果年龄大于60条件成立,则输出:可以退休了

参考答案
# 用户输入年龄,如果年龄超过60岁,输出:可以退休了。
# 获取年龄
age = int(input('请您输入年龄:'))
# 判断给提示
if age > 60:
    print('可以退休了~')
题目2 [加强训练]
题干

用户输入年龄,如果年龄超过60岁,输出:"可以退休了", 否则,输出:"年轻人,加油干!"

训练目标

if…else语法

训练提示

题目描述了2种情况(年龄超过60岁和不超过60岁),涉及到2中情况需要判断的时候,使用哪种if语句格式?

参考方案

在Python中,能够判断两种情况的时候需要使用if…else…语句。

操作步骤
  1. input()接收用户输入的年龄,并转换数据类型为int;

  2. 如果用户输入的年龄大于60,则输出"可以退休了"; 条件不成立则输出:小伙子,加油干!

参考答案
# 用户输入年龄,如果年龄超过60岁,输出:"可以退休了", 否则,输出:"年轻人,加油干!"
# 获取年龄
age = int(input('请您输入年龄:'))
# 判断给提示
if age > 60:
    print('可以退休了~')
else:
    print("年轻人,加油干!")

题目3 [加强训练]

题干

用户输入年龄,按照如下标准书写程序,判断用户处于哪个年龄阶段,并提示:您的年龄是xx: 青少年/青年/中年/老年。

年龄段划分标准:0-17岁为青少年;18-35岁为青年;36-59为中年,60-99岁为老年。

训练目标
  1. elif多重判断写法;

  2. 逻辑运算符的使用方法。

训练提示
  1. 本题中年龄段分为青少年、青年、中年、老年四种情况需要判断,在Python中,判断多种情况需要使用哪种if语句格式?

  2. 每个年龄段有最低和最高年龄限制,使用哪种运算符能完成对最低和最高年龄同时判断?

参考方案
  1. 在Python中,判断多种情况需要使用elif多重判断写法;

  2. 对每个年龄段的最低和最高年龄同时限制,需要使用逻辑运算符中的and

操作步骤
  1. input()接收用户输入的年龄,并转换数据类型为int;

  2. if…elif对不同的年龄段进行判断。

参考答案
"""
用户输入年龄,按照如下标准书写程序,判断用户处于哪个年龄阶段,并提示:您的年龄是xx: 青少年/青年/中年/老年。
年龄段划分标准:0-17岁为青少年;18-35岁为青年;36-59为中年,60-99岁为老年。
"""
print('---请您输入年龄,此程序将判断您处于哪个年龄阶段---')
# 获取用户年龄
age = int(input('请您输入年龄:'))
# 判断并给提示
if age > 0:
    if age <= 17:
        print('青少年')
    elif age <= 35:
        print('青年')
    elif age <= 59:
        print('中年')
    elif age <= 99:
        print('老年')
    else:
        print('老古董了~点赞~')
else:
    print('您输入的年龄有误!')

题目4 [加强训练]

题干

用户登录输入验证码,已知验证码是axyz, 验证码正确提示可以登录,否则输出:提示验证码错误。

训练目标

比较运算符==的使用方法

训练提示

如何判断用户输入的验证码和axyz相同?

参考方案

判断相等使用比较运算符==

操作步骤
  1. 用户输入验证;

  2. if…else...判断用户输入的验证码是否和axyz相等。

参考答案
# 用户登录需要输入验证码,已知验证码是axyz,  验证码正确提示可以登录,否则输出:提示验证码错误。
# 已知验证码
yzm = 'axyz'
print(f"验证码为:{yzm}")
# 先获取验证码
user_yzm = input('请您输入验证码:')
# 再判断验证码对不对
if user_yzm == yzm:
    print('可以登录~')
else:
    print('验证码错误')

题目5 [综合训练]

题干

制作用户登录系统:已知A用户注册的用户名为binzi,密码是123456。具体要求如下:

登录时需要先验证验证码(固定验证码为qwer),再验证码用户名、密码。

提示:系统先验证验证码是否正确,正确后再验证用户名和密码!!!

训练目标
  1. if…else语句格式

  2. 比较运算符== 和 逻辑运算符

  3. if嵌套语句格式

训练提示
  1. 如何书写程序可以先验证验证码的正确性,验证码正确后再验证用户名和密码?

  2. 如何判断用户输入的验证码的正确性?

  3. 如何判断用户名和密码的正确性?

  4. 逻辑运算符 and并且 or或者 not取反

参考方案
  1. 先判断验证码的正确性,再验证用户名和密码,需要使用if嵌套写法;

  2. 判断用户输入的验证码/用户名/密码的正确性要使用到比较运算符==

  3. 登录功能要求用户名和密码必须同时正确,所以这里要使用到逻辑运算符and

操作步骤
  1. 准备用户名、密码、验证码等数据;

  2. 用户输入用户名、密码、验证码;

  3. 判断验证码是否为qwer

  4. 如果验证码为qwer,再验证用户名和密码的正确性。

参考答案
"""
制作用户登录系统:已知A用户注册的用户名为binzi,密码是123456。具体要求如下:
登录时需要先验证验证码(固定验证码为qwer),再验证码用户名、密码。
"""
print('---------用户登录系统--------------')
# 已知用户注册的用户名为binzi,密码是123456
name = 'binzi'
pwd = '123456'
# 已知验证码
yzm = 'qwer'
print(f"验证码为:{yzm}")
# 先获取验证码
user_yzm = input('请您输入验证码:')
# 再判断验证码对不对
if user_yzm == yzm:
    # 可以登录
    user_name = input('请您输入用户名:')
    user_pwd = input('请您输入密码:')
    if user_name == name and user_pwd == pwd:
        print('登录成功~')
    else:
        print('用户名或者密码错误!')
else:
    print('验证码错误')

Python循环语句

题目 1 [加强训练]

题干

使用for循环计算1 - 100 之间的累加和

训练目标

range()的使用

训练提示
  • range()方法的作用

  • for循环如何使用

  • 累加重新辅助

参考方案
  • 使用for寻遍遍历1~100

  • 进行累加重新赋值

操作步骤
  • 定义变量sum,初始化sum=0

  • 遍历1~100的所有的值

  • 进行累加和

参考答案
sum = 0
for i in range(1, 101):
    sum += i
print(sum)

题目 2 [加强训练]

题干

要求用户输入一个字符串,遍历当前字符串并打印,如果遇见“q”,则终止循环

训练目标
  • for循环的基本使用

  • break的作用

训练提示
  • for 循环的基本语法是什么

  • for循环的作用是什么

  • break的作用?

参考方案
  • 使用for循环遍历当前字符串

  • 判断每一字符是什么进行操作

操作步骤
  • 提示用户输入字符串

  • 便利当前字符串

  • 如果是“q”则退出

  • 打印字符

参考答案
a = input("输入一个字符串:")
for i in a:
    if i == 'q':
        break
    print(i)

题目 3 [加强训练]

题干

使用for循环计算100 - 999 之间的偶数的个数

训练目标

range(x,y,z)的使用

计数思想

训练提示
  • range()方法的作用

  • for循环如何使用

  • 计数思想

参考答案:

sum = 0
for i in range(100, 999, 2):
    sum += 1
​
print(sum)

题目 4 [加强训练]

题干

要求用户输入一个字符串,遍历当前字符串并打印,如果遇见“e”,则终止循环。如果遇见' '(空格)则跳过当前输出。

训练目标
  • for循环的基本使用

  • break的作用

  • continue的作用

训练提示
  • for 循环的基本语法是什么

  • for循环的作用是什么

  • break的作用?

  • continue的作用?

参考方案
  • 使用for循环遍历当前字符串

  • 判断每一字符是什么进行操作

操作步骤
  • 提示用户输入字符串

  • 便利当前字符串

  • 如果是“e”则退出,如果是“ ”(空格)则跳过本次循环

  • 打印字符

参考答案
a = input("输入一个字符串:")
for i in a:
    if i == 'e':
        break
    if i == ' ':
        continue
    print(i)

题目5 [加强训练]

题干

编写代码模拟用户登陆。要求:用户名为 binzi,密码 123456,如果输入正确,打印“欢迎光临”,程序结束,如果输入错误,提示用户输入错误并重新输入

训练目标
  • while中的break的使用

训练提示
  • 定义变量,用户名和密码采用什么格式存储

  • 循环没有次数限制,那么我们使用while循环的时候条件是什么?

  • 判断用户名和密码是否相同,我们的条件采用“or"还是“and”?

  • break的作用是什么

参考方案
  • 首先我们要自己定义用户名和密码保存

  • 如果用户错误那么就需要重新循环,我们就需要采用什么方式进行循环?

  • 提示用户输入信息

  • 判断输入信息,根据不同的结果进行不同的执行方式

操作步骤
  • 定义名户名和密码分别为name = "binzi",pwd = "123456"

  • 使用循环,循环条件是True

  • 提示用户输入用户名和密码

  • 判断用户名和密码是否正确

  • 如果正确跳出循环,不正确提示输入错误

参考答案
while True:
    username = input("请输入你的用户名:")
    password = input("请输入你的密码:")
    if username == "binzi" and password == "123456":
        print("欢迎光临")
        break
    else:
        print("输入错误并重新输入。")

题目6 [加强训练]

题干

设计"过7 游戏” 程序,即在 1- 99 之间的数字中,如果数字 包含 7 或者是 7 的倍数,则输出"过...", 否则输出 具体的数字.

训练目标
  • while 循环的使用

  • 运算符的使用

训练提示
  • 如何取得 1-99 之间的数字

  • 如何判断一个数是7的倍数

  • 如何判断一个数是否包含 数字 7

参考方案
  • 使用循环获取 1-99 之间的数字

  • 判断一个数是否是 7 的倍数,即能否被 7 整除,在 python 可以使用% 运算符

    判断7的倍数: i % 7 == 0 找出: 7 14 21 ...

  • 判断一个数字是否包含 7,可能个位是 7,也可能是十位数字是 7

    判断个位 : i % 10 == 7 找出: 7 17 27 ...

    判断十位: i // 10 == 7 找出: 70 71 72 ...

操作步骤
  • 使用循环得到 1 - 100 之间的数字

  • 判断是否是 7 的倍数和包含 7

参考答案
i = 0
while i < 99:
    i += 1
    if i % 7 == 0 or i % 10 == 7 or i // 10 == 7:
        print("过")
    else:
        print(i)

Python函数基础

简答题:

1.请简述下函数的通用定义和调用格式:

通用定义格式
def 函数名(形参):
    函数体
    return 返回值
​
通用调用格式
变量 = 函数名(实参)

2.请简述下函数的注意事项:

1.函数必须先定义再调用
2.函数不调用不执行
3.函数可以重复调用
4.定义函数的时候没有形参,调用的时候就不需要传递实参
5.定义函数的时候没有return返回值,调用的时候就不需要接收返回值
6.无参无返回值调用格式:  函数名()
7.有参无返回值调用格式:  函数名(实参)
8.有参有返回值调用格式:  变量接收返回值=函数名(实参)
9.函数如果没有return返回值,函数体最后默认返回了None
题目1 [加强训练]
题干

定义一个简单的函数run,函数的功能是输出"我在跑步" 以及 “管住嘴,迈开腿”,并调用此函数。

训练目标
  1. 如何定义一个函数

  2. 调用函数的方式

训练提示
  1. 定义函数的形式是什么?声明函数的关键字是什么?

  2. 怎么让函数运行?

参考方案
  1. 用def关键字定义函数

  2. 用函数名+小括号的方式来调用函数

操作步骤
  1. 函数定义,书写函数代码

  2. 函数调用,运行函数代码

参考答案
def run():
    print("我在跑步。")
    print("管住嘴,迈开腿")
​
run()
题目2 [加强训练]
题干

在第一题中,我们已经用函数run实现了一些功能,如果我们想run函数做的操作执行1000遍,怎么实现代码?

####训练目标

  1. 让同学们知道应用函数的好处

训练提示
  1. 我们用run函数来实现一个功能,实现一次功能就调用一次run函数,那么实现1000遍怎么实现呢?

参考方案
  1. 执行1000遍函数,可以调用1000次函数

  2. 可以用for循环来实现1000次调用

参考答案
def run():
    print("我在跑步。")
    print("管住嘴,迈开腿")
​
​
for i in range(1000):
    run()

题目3 [加强训练]

题干

现在我们来实现一个有参数有返回值的函数multiplication,并实现调用,要求如下 :

我们要用函数来实现7与13两个数字的乘法运算,并返回两个数的计算结果进行输出

训练目标
  1. 如何定义一个有参数有返回值的函数

  2. 如何调用有参数有返回的函数

训练提示
  1. 定义函数的关键字是什么?

  2. 定义的函数有参数,形式参数要不要写?

  3. 依然使用函数名()的方式来调用,是不是仅仅这样就可以?

参考方案
  1. def定义一个有参数的函数,写上形式参数

  2. 用return来返回返回值

参考答案
def multiplication():
    return 7 * 13
​
sum = multiplication()
print(sum)

Python数据容器

列表

列表的定义
# 1.需求:定义空列表:  列表名 = []   或者   列表名 = list()
​
# 2.需求: 定义一个列表存储'张三','李四','王五'等多个学生姓名
​
参考答案
s1 = []
s2 = ['张三','李四','王五']
列表的下标索引
# 需求:定义列表 存["张三", "李四", "王五"]
​
# 需求: 在所有姓名列表中找到下标索引为1的姓名
​
# 需求: 在所有姓名列表中找到下标索引为-1的姓名
​
# 需求: 在所有姓名列表中找到张三
​
参考答案
s1 = ['张三', '李四', '王五']
print(s1[1])
print(s1[-1])
print(s1[0])
列表的增加操作
# 需求: 做核酸早上刚开始没有人排队(定义空列表)
​
# 需求: 张三排队到末尾
​
# 需求: 李四和王五夫妻俩一起排队到末尾
​
# 需求: 赵六走关系需要插队到第一个位置
​
参考答案
acid = []
acid.append("张三")
acid.append(["李四", "王五"])
acid.insert(0,"赵六")
print(acid)
列表的删除操作
# 需求: 已知做核酸队列['赵六', '张三', '李四', '王五']
​
# 需求: 删除第一个位置的元素
​
# 需求: 移除做完核酸的张三
​
# 需求: 清空列表中所有元素
​
参考答案
acid = ['赵六', '张三', '李四', '王五']
​
del acid[0]
print(acid)
acid.remove("张三")
print(acid)
acid.clear()
print(acid)
列表的修改操作
# 需求: 定义已知数字序列[30,20,10,40]
​
# 需求: 把第一个位置的元素值修改成33
​
参考答案
# 需求: 定义已知数字序列[30,20,10,40]
num_list = [30,20,10,40]
# 需求: 把第一个位置的元素值修改成33
num_list[0] = 33
列表的查询操作
# 需求: 定义列表,已知数据['张三','李四','王五','张三']
​
# 需求: 查询张三在列表中出现次数
​
# 需求: 查询李四在列表中的下标索引
​
# 需求: 查询names列表中有多少个元素
​
参考答案
name = ['张三', '李四', '王五', '张三']
​
print(name.count("张三"))
​
print(name.index("李四"))

元组

元组的定义
# 需求: 定义 空元组格式两种方式
​
# 需求: 定义非空元组存储'张三', '李四', '王五' 
​
# 注意: 如果元组只存储一个元素'赵六'
​
参考答案
s1 = set()
s2 = ('张三', '李四', '王五')
# s3 = ('赵六',)
元组的查询操作
# 需求: 定义一个元组,存储'张三','李四','王五','张三'
​
# 需求: 查询第一个位置的元素
​
# 需求: 查询张三元素在元组中出现次数
​
# 需求: 查询李四元素在元组中的下标索引
​
# 需求: 查询names元组当前元素的个数
​
参考答案
s1 = ('张三', '李四', '王五', '张三')
​
print(s1[0])
​
print(s1.count("张三"))
​
print(s1.index('李四'))
​
print(len(s1))
元组的遍历操作
# 需求: 定义元组,存储张三,李四,王五,赵六
​
# 需求: 依次把names元组中每个名字取出打印到控制台
​
# while循环方式
​
# for循环方式
​
参考答案
s1 = ('张三', '李四', '王五', '赵六')
​
for i in s1:
    print(i)
​
​
x = 0
​
while x < len(s1):
    print(s1[x])
    x += 1

字符串

题目1 [加强训练]
题干

如果需要使用变量保存以下字符串,我们该如何书写代码

鲁迅说:'我没有说过这句话'

训练目标

让学员知道含有字符串嵌套的方式

训练提示

在python中,有两种表现形式都可以定义为字符串类型,是哪两种方式,是否可以混合使用呢

参考方案

使用 " " 和 ' ' 都可以对字符串进行定义

操作步骤
  1. 想要在在一个字符串中包含双引号"", 字符串可以使用单引号定义

  2. 想要在在一个字符串中包含单引号'', 字符串可以使用双引号定义

参考答案
print("'我没有说过这句话'")
​
print('"我没有说过这句话"')
题目2 [加强训练]
题干

做一个简单的用户信息管理系统: 提示用户依次输入姓名,年龄和爱好 并且在输入完成之后,一次性将用户输入的数据展示出来

训练目标

字符串的声明 字符串的输入 字符串的输出

训练提示
  1. 在python中,通过 "" 或者 '' 声明一个字符串类型的变量

  2. 使用input()函数从键盘获取数据

  3. 格式化输出字符串

参考方案
  1. 通过input函数进行字符串数据的录入

  2. 使用 string 类型保存录入的数据

  3. 格式化输出字符串

操作步骤
  1. 通过input函数进行字符串数据的录入

  2. 使用 string 类型保存录入的数据

  3. 格式化输出字符串

参考答案
c1 = ""
name = input("请输入你的名字:")
c1 = c1 + name
age = input("请输入你的年龄:")
c1 = c1 + age
play = input("请输入你的爱好:")
c1 = c1 + play
print(c1)
题目3[加强训练]
题干

james有一个关于爬虫的项目,他需要在一个字符串中查找python这个关键字,当前他通过index()函数进行查找,虽然可以实现查找的需求,但是总会在没有查找到关键字的时候报错,为什么会报错,如何优化?

训练目标
  1. 理解find函数和index函数的区别

参考答案
使用find函数替换index,因为find函数在找不到时不会报错,会返回-1
题目4(加强训练)
题干
# 演示要求把字符串中敏感词替换为挺萌的
​
# 需求: 定义字符串 存储 '你TMD哦'
​
# 需求: 利用replace把TMD替换成挺萌的
训练目标

理解replace函数功能

训练提示

字符串.replace(敏感词, '***')

参考答案
s1 = '你TMD哦'
​
print(s1.replace("TMD","挺萌的"))
题目5(加强训练)
题干
# 需求: 定义字符串'苹果,香蕉,橘子,橙子,榴莲'
​
# 需求: 要求把所有水果分开单独放到一个容器中要求结果:['苹果', '香蕉', '橘子', '橙子', '榴莲']
​
# 需求: 查看切割后容器类型
​
# 需求: 使用切割后生成的列表

训练目标

理解split函数功能

训练提示

分析: 使用split根据逗号,把水果字符串切割成多个小字符串放到列表中

列表名 = 字符串.split(',')

参考答案
fru = "苹果,香蕉,橘子,橙子,榴莲"
​
fru2 = fru.split(",")
print(fru2)

序列

题目1 [加强训练]
题干

现有字符串如下,请使用切片提取出ceg words = "abcdefghi"

训练目标

字符串的切片使用

训练提示

1, 切片的语法:字符串变量[起始:结束:步长] 2, 选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身), 3, 步长表示选取间隔,

默认步长是正值,即从左到右选取,

如果步长为负值,则从右向左选取

参考方案

1,使用切片进行截取,起始位置是2,结束位置是8,步长为2 2,使用切片进行截取,起始位置是-7,结束位置是-1,步长为2

操作步骤

1.起始位置是2,结束位置是8,步长为2

2.起始位置为-7,结束位置是-1,步长为2

参考答案
words = "abcdefghi"
​
print(words[2:8:2])
print(words[-7:-1:2])

集合

题目1
题干

请创建一个空集合set1

训练目标

集合的创建

训练提示

集合是用{}符号来标识的,那么怎么是否是直接用 set1 = {} 是不是?

参考方案

应该是用到set()这个方法来初始化,而不是用set1 = {}来做,因为这样创建出来的是一个空字典

操作步骤

字节使用set()即可

参考答案
set1 = set()
题目2
题干

有一个集合set1 = {1,2,3,4} 请实现:给set1添加一个元素5

训练目标

集合的增加操作

训练提示

上课的时候讲师是否讲过一个add方法?

参考方案

用add()实现集合的增加操作

操作步骤

直接用add()

参考答案
set1 = {1, 2, 3, 4}
​
set1.add(5)
print(set1)

字典

题目1
题干

有一个空字典dict1 = {},请给他添加一个为name:python的键值对

训练目标
  1. 字典中添加键值对的操作。

  2. 字典是可变类型的。

训练提示
  1. 现在给定了一个字典,字典是什么类型的?

  2. 字典是可变类型的,那么是不是意味着可以执行添加操作?

  3. 执行添加操作,要怎么执行?

参考方案
  1. 给字典新增一个名为name的键

  2. 使用“=”符号,给这个键赋值一个值为python的字符串

操作步骤
  1. dict1["name"]来指定键的名称,用‘=’来进行赋值操作

参考答案
dict1 = {}
dict1["name"] = "python"
print(dict1)
题目2
题干

现有字典dict1 = {'name':'python'},将键为'name'的值更改为'chuanzhi'

训练目标

字典中键值对的更改操作

训练提示
  1. 已经有了一个键值对,要对其进行更改值

  2. 此时只需要使用'='来执行赋值操作就行

参考方案
  1. 先指定要更改的键

  2. 使用“=”符号,给这个键赋值一个值为python的字符串

操作步骤
  1. dict1["name"]来指定键的名称,用‘=’来赋值要更改的值('chuanzhi')

参考答案
dict1 = {'name': 'python'}
dict1['name'] = "chuanzhi"
print(dict1)dict1 = {'name': 'python'}
dict1['name'] = "chuanzhi"
print(dict1)
题目3
题干

现有字典dict1 = {'name':'chuanzhi','age':18} 要求:

1.使用循环将字典中所有的键输出到屏幕上 2.使用循环将字典中所有的值输出到屏幕上 3.使用循环将字典中所有的键值对输出到屏幕上 ​ 输出方式: name:chuanzhi age:18

训练目标
  1. for循环的使用复习

  2. 学会如何获取字典所有的键

  3. 学会如何获取字典所有的值

  4. 学会如何获取字典所有的键值对

训练提示
  1. 用for来实现循环

  2. 用字典.keys()来获取所有的键

  3. 根据key找值

  4. 用字典.values()来获取所有的值

  5. 用字典.items()来获取所有的键值对

参考答案
dict1 = {'name': 'chuanzhi', 'age': 18}
​
keys = dict1.keys()
values = dict1.values()
kvs = dict1.items()
for key in keys:
    print(key)
​
for value in values:
    print(value)
​
for kv in kvs:
    print(kv)

综合练习

题目1 [加强训练]
题干

有这样的一个列表 product=[ {"name":"电脑","price":7000}, {"name":"鼠标","price":30}, {"name":"usb电动小风扇","price":20}, {"name":"遮阳伞","price":50} ],然后小明一共有8000块钱,那么他能不能买下这所有商品? 如果能,请输出“能”,否则输出“不能”

训练目标

if判断语句的复习使用 列表与字典的复合使用 遍历列表与遍历字典的使用

训练提示

题目中给了“能不能”三个字,那么这时候用什么语句来实现呢? 题目中数据是用列表来套字典来存储的,那么获取数据是不是要遍历呢? 在判断能不能买下的时候,那么要用那两个数据进行判断呢,这两个数据分别是什么?

参考答案
product = [
    {"name": "电脑", "price": 7000},
    {"name": "鼠标", "price": 30},
    {"name": "usb电动小风扇", "price": 20},
    {"name": "遮阳伞", "price": 50}
]
a = 0
​
m = 8000
while a < len(product):
    m = m - product[a]["price"]
​
    a = a + 1
if m >= 0:
    print("能")
else:
    print("不能")
题目2 [加强训练]
题干

有一个列表,判断列表中的每一个元素是否以s或e结尾,如果是,则将其放入一个新的列表中,最后输出这个新的列表

list1 = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]
训练目标

让学员知道列表的循环和值的获取,以及列表的操作方法

训练提示
  1. 如何找到列表中的每一个元素?

  2. 如何判断列表中的元素以什么字符结尾?

参考方案
  1. 使用循环遍历的方式获取列表中的每一个元素?

  2. 列表中的元素为字符串,所以可以使用下标[-1] 来获取最后一个字符的值,然后判断.

操作步骤
  1. 遍历列表中的每一个元素

  2. if 判断 最后一个字符是否是s或者e

  3. 如果是,使用 append() 方法,将数据追加到新的列表中.

参考答案

方式1

list1 = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]
list = []
for i in list1:
    if i[-1] =='s' or i[-1] =='e':
        list.append(i)
​
print(list)

方式2

list1 = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]
list = []
​
a = 0
​
while a < len(list1):
    if list1[a][-1] == 's' or list1[a][-1] == 'e':
        list.append(list1[a])
    a += 1
print(list)

Python文件操作

题目1(简答题)

请使用自己的话来说一说文件操作的基本流程是如何的?

考察知识点
  • 文件操作

参考答案
打开文件
操作文件(读、写、追加)
关闭文件

题目2(实操题)

请使用文件操作将一个图片文件进行备份处理功能,备份文件名为:xxx[副本]后缀,比如xxx[副本].jpg。

考察知识点
  • 文件操作

  • 读写数据

参考答案
# 打开文件用于读取数据,使用rb模式读取二进制数据
f_read = open('xxx.jpg', mode='rb')
f_write = open('xxx[副本].jpg', mode='wb')
# 处理数据
data = f_read.read()
f_write.write(data)
# 关闭文件
f_read.close()
f_write.close()

题目3(实操题)

请使用文件操作将一个视频文件进行备份处理功能,备份文件名为:xxx[副本]后缀,比如xxx[副本].mp4。

考察知识点
  • 文件操作

  • 读写数据

参考答案
# 打开文件用于读取数据,使用rb模式读取二进制数据
f_read = open('xxx.mp4', mode='rb')
f_write = open('xxx[副本].mp4', mode='wb')
# 处理数据
data = f_read.read(29640 * 512)
f_write.write(data)
# 关闭文件
f_read.close()
f_write.close()

题目4(实操题)

请使用文件操作将一个视频文件一半内容进行备份处理功能,备份文件名为:xxx[副本]后缀,比如xxx[副本].mp4。

考察知识点
  • 文件操作

  • 读写数据

参考答案
# 打开文件用于读取数据,使用rb模式读取二进制数据
f_read = open('xxx.mp4', mode='rb')
f_write = open('xxx[副本].mp4', mode='wb')
# 处理数据
lines = f_read.readlines()
middle_index = len(lines) / 2
i = 0
new_lines = []
while i < middle_index:
    new_lines.append(lines[i])
f_writelines(new_lines)
# 关闭文件
f_read.close()
f_write.close()

Python异常模块

题目1(简答题)

请列举至少4个常见的异常,并对异常进行解释说明其表示含义,最好使用案例能制造出该异常。

考察知识点
  • 异常

  • 常见异常名称

参考答案
# TypeError  1+'1'
# NameError print(a)
# IndexError list1[9]  dict1['key1']
# FileNotFoundError open('test.txt')
# ModuleNotFoundError import numpy
# ClassNotFountError pip

题目2(简答题)

请阐述一下Python中导入模块的几种方式,并说明其含义。

考察知识点
  • 模块导入

  • 关键字

参考答案
import 模块名1[, 模块名2, 模块名3...]
from 模块名 import 功能名1[,功能名2, 功能名3...]
from 模块名 import *
from 包名 import 模块名1[, 模块名2, 模块名3...]

题目3(实操题)

从键盘上输入一个5位数(数字),判断它是不是回文数。所谓的回文数,指的是个位与万位相同、十位与千位相同的整数,例如:12321是回文数。

(1)设计一个函数用来判断某个5位数是否为回文数;

(2)提升程序的稳定性,可以对程序进行异常处理。

考察知识点
  • 函数

  • 异常处理

参考答案
# 从键盘上输入一个5位数(数字),判断它是不是回文数。所谓的回文数,指的是个位与万位相同、十位与千位相同的整数,例如:12321是回文数。
def is_hui_wen(num2):
    """
    这是一个判断是否是回文数的函数
    :param num2: 被判断的数字
    :return: None
    """
    # 判断是否是5位数字
    if 10000 <= num2 <= 99999:
        # 获取个位数
        ge_wei = num2 % 10
        # 获取十位数   12546 % 100 = 46 // 10 = 4
        shi_wei = (num2 % 100) // 10
        # 获取千位数   12546 % 10000 = 2546 // 1000 = 2
        qian_wei = (num2 % 10000) // 1000
        # 获取万位数
        wan_wei = num2 // 10000
        # 判断
        if ge_wei == wan_wei and shi_wei == qian_wei:
            print(f"{num2}是回文数字")
        else:
            print(f"{num2}不是回文数字")
    else:
        print(f"{num2}输入的不是5位数字")
​
​
if __name__ == '__main__':
    # 从键盘录入5位数
    str1 = input("请输入一个5位的数字:")
    try:
        # 将字符串转换为int类型
        num1 = int(str1)
        # 调用函数判断是否是回文数
        is_hui_wen(num1)
    except ValueError as e:
        print(f"出现了异常,信息为:{e}")

题目4(实操题)

请独立完成从键盘上输入某年-某年,并计算出年份之间的所有闰年年份。比如:1800年~2030年,闰年有哪些?

(1)提示:闰年就是能被4整除,且不能被100整除,或者能被400整除的年份。

(2)每隔2个闰年,则换一行输出;

(3)可使用函数完成。

考察知识点
  • 综合运用

  • 函数

参考答案
# 请独立完成从键盘上输入某年-某年,并计算出年份之间的所有闰年年份。
def calculate_yun_year(start, end):
    """
    统计从起始年份到结束年份中的闰年有哪些
    :param start: 起始年份
    :param end: 结束年份
    :return:
    """
    # 定义计数变量
    count = 0
    # 从起始年份到结束年份遍历所有的年份
    for year in range(start, end + 1):
        # 闰年就是能被4整除,且不能被100整除,或者能被400整除的年份。
        if (year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
            count += 1
            # 每隔2个闰年,则换一行输出
            print(year, end='\t')
            if count % 2 == 0:
                print("")
    print(f"本次计算的闰年一共有{count}个")
​
​
if __name__ == '__main__':
    try:
        # 从键盘输入年份的范围
        start_year = int(input("请输入起始年份:"))
        end_year = int(input("请输入结束年份:"))
        # 计算闰年
        calculate_yun_year(start_year, end_year)
    except Exception as e:
        print(f"{e}")
​

动态抽奖的案例

  • 需求:

(1)使用所学知识来完成一个动态抽奖系统案例;

(2)咱们班的学生姓名保存在学生名单.txt中。

(3)从键盘录入一个数字,根据数字随机姓名对应个数的人名。

import random
​
​
def get_winners(students, num_winners):
    """
    随机获取中奖学生名单
    :param students: 所有的学生名单
    :param num_winners: 中奖的人数
    :return:
    """
    if not students:
        print("错误:学生名单为空,无法抽奖!!!")
        return []
​
    if num_winners > len(students):
        print("错误:中奖人数不能超过学生总人数!!!")
        return []
    # random.sample(参数1, 参数2):随机从数据容器中获取指定个数的元素
    # 参数1:指定的数据容器
    # 参数2:指定的获取个数
    # winners = random.sample(students, num_winners)
    # return winners
    # 打乱数据容器中的元素
    random.shuffle(students)
    # 定义空列表保存随机获取的学生名单
    winners = []
    # 使用for循环获取指定个数的元素
    for i in range(num_winners):
        winners.append(students[i])
    return winners
​
​
if __name__ == '__main__':
    # 获取学生名单
    f = open(file='学生名单.txt', mode='r', encoding='utf8')
    students = f.readlines()
    print(students)
    while True:
        # 获取中奖人数
        num_winners = int(input("请输入抽取的中奖人数:"))
​
        # 根据中奖人数获取学生名单
        winners = get_winners(students, num_winners)
        print(winners)
​
        # 当输入为0时结束循环
        if num_winners == 0:
            break
    # 关闭文件      
    f.close()
​

Python正则表达式

题目1(实操题)

请使用正则表达式来完成:

(1)匹配100-1000之间的任意数;

(2)匹配出6到20位的用户昵称,可以是大小写英文字母、数字、下划线;

(3)匹配出QQ号,注意:QQ号全是数字,且当前位数有6位、7位、8位、9位、10位、11位;

(4)匹配任意字符;

(5)请提取字符串“黑马程序员官方客服400-618-9090,欢迎拨打!”中的联系方式。

(6)编写一个函数,用于匹配并提取电子邮件地址中的用户名部分

考察知识点
  • 正则表达式

  • re模块

参考答案
import re
​
# (1)匹配100-1000之间的任意数;
result = re.match(pattern='^1000$|^[1-9]\d\d$', string='999').group()
print(f"结果1:{result}")
# (2)匹配出6到20位的用户昵称,可以是大小写英文字母、数字、下划线;
result = re.match(pattern='\w{6,20}', string='helloHDfS213').group()
print(f"结果2:{result}")
# (3)匹配出QQ号,注意:QQ号全是数字,且当前位数有6位、7位、8位、9位、10位、11位;
result = re.match(pattern='[^0]\d{6,11}', string='123145647').group()
print(f"结果3:{result}")
# (4)匹配任意字符;
result = re.match(pattern='.', string='\n', flags=re.DOTALL).group()
print(f"结果4:{result}")
# (5)请提取字符串“黑马程序员官方客服400-618-9090,欢迎拨打!”中的联系方式。
result = re.search(pattern='(\d{3})-(\d{3})-(\d{4})', string="黑马程序员官方客服400-618-9090,欢迎拨打!").group(1)
print(f"结果5:{result}")
​
​
# (6)编写一个函数,用于匹配并提取电子邮件地址中的用户名部分
# helloykl@itcast.cn
def extract_username(email):
    """
    用于抽取电子邮件中的用户名
    :param email: 被抽取的电子邮件的地址
    :return: 用户名
    """
    result = re.match(pattern='(^\w+)@', string=email)
    if result:
        username = result.group(1)
        return username
    else:
        return None
​
​
emails = ["user123@qq.com", "aaabbb163.com", "helloykl@itcast.cn"]
# 定义列表接收多个抽取结果
usernames = []
for email in emails:
    # 如果抽取结果不为None,将结果追加到列表中
    if extract_username(email):
        usernames.append(extract_username(email))
print(usernames)
​
print([extract_username(email) for email in emails if extract_username(email)])
​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值