Python练习宝典:Day 3 - 选择题 - 字符串与正则表达式、基础练习补充

时间:2024-09-30 20:31:44

目录

  • 一、基础练习补充
  • 二、字符串与正则表达式

一、基础练习补充

1.下列能返回变量s的数据类型的是:

A.print(type(s))
B.print(s)
C.print(int(s))
D.print(str(s))

2.如果想要换行,可以使用:

A.\
B.\n
C.\t
D.\f

3.合法的标识符是:

A.M-N
B.and
C.Dior_Ysl
D.6_friends

4.在Python中,使用内置函数type()可以返回变量()?

A.内存地址
B.长度
C.名称
D.类型

5.下列要求参数必须是整数的函数是:

A.chr()
B.oct()
C.hex()
D.以上都是

6.标识符主要用来标识什么?

A.变量
B.函数
C.模块
D.以上都对

7.下列说法正确的是:

A.Python的数字类型有两种,整数和浮点数
B.Python中表示字符串时,不可以嵌套使用引号
C.Python 中的布尔值可以转化为数值
D.Python是动态类型的语言,任何情况下都不需要进行数据类型转换

8.下列哪一项是可用的变量名:

A.print
B.Print
C.True
D.if

9.下列哪个不是Python中的关键字:

A.in
B.True
C.Try
D.with

10.如下所示代码,点下Enter键后,会输出什么呢?

a=2.0
b=2.0
a is b

A.2.0
B.4.0
C.False
D.True

11.print(r"站住!\t举起手来!")的输出结果为:

print(r"站住!\t举起手来!")

A.站住!举起手来!
B.站住!    举起手来!
C.站住!
  举起手来!
D.站住!\t举起手来!

12.请判断1>2 or 1>=0的运算结果:

A.True
B.False
C.Not
D.False or False

13.算术运算符是处理四则运算的符号,在数字处理中应用的最多,下面哪个不是常用算术运算符:

A.*
B./
C.+=
D.**

14.Python中的位与运算符是:

A.^
B.and
C.|
D.&

15.当我们需要用到取余数赋值时,需要用到什么方法?

A./=
B.-=
C.%=
D.*=

16.在算术运算符中使用%求余,如果除数是负数,那么取得的结果一定是()?

A.正数
B.整数
C.负数
D.0

17.运行下面一段代码,写出你心中的输出结果.

a=-2
b=a if a<0 else -a
print(-b)

A.0
B.2
C.-2
D.编译错误

二、字符串与正则表达式

1.在字符串中搜索第一个匹配的值,要使用什么方法?

A.find()
B.search()
C.sorted()
D.found()

2.听说你有仙女棒,能变大变小变漂亮?没有仙女棒的我用Python也能随意转换大小!想要把大写字母全部转换为小写字母,只需使用()方法:

A.lower()
B.upper()
C.bigger()
D.smaller()

3.在Python中一个数字占几个字节:

A.0.5个
B.1个
C.2个
D.4

4.正则表达式中使用()来匹配任意数量的字母或数字或下划线或汉字:

A.\w
B.\b
C.^
D.\w*

5.使用re模块实现正则表达式时,哪一项能用*替换原字符串中的数字。答案:

A.replace()
B.sub()
C.match()
D.split()

6.如果我们想要返回将小写字母变成大写字母的字符串,需要用什么方法?

A.s.find()
B.s.split()
C.s.lower()
D.s.upper()

7.下面哪个不是re模块提供的匹配字符串方法?

A.finally()
B.findall()
C.search()
D.match()

8.在re模块内,从字符串开始处进行匹配的方法是:

A.match()
B.search()
C.findall()
D.sub()

9.Python中使用正则表达式,需要():

A.先使用import语句引入re模块
B.先使用import语句引入math模块
C.使用match()方法
D.使用限定符

10.正则表达式中,匹配不符合指定字符集合的字符串需要用什么字符?

A.!=
B.*
C.^
D.\f

11.如果想要将整数转换成字符串,需要用到什么函数?

A.num()
B.double()
C.int()
D.str()

12.以下关于Python字符串的描述中,错误的是:

A.字符串是用一对双引号""或者单引号''括起来的零个或多个字符。
B.字符串是字符的序列,可以按照单个字符或者字符片段进行索引。
C.字符串包括两种序号体系:正向递增和反向递减。
D.Python字符串提供区间访问方式,采用[N:M]格式,表示字符串从N到M的索引子字符串(包含N和M)

13.话说,天下大事,分久必合,合久必分!Emmmm…下列关于字符串的分割说法正确的是:

A.分割是将字符串分割成任意序列
B.指定了split()方法的最大分割次数,就必须分割这么多次
C.在使用split()方法进行分割字符串时,如果不指定分隔符,就不能指定分割次数
D.如果不指定分隔符,则只能根据字符串中的空格进行分割

14.在使用format()方法格式化字符串时,用()表示十进制整数类型的数据:

A.s
B.f
C.d
D.e或者E

15.下列哪个方法能够根据“,”分割字符串:

A.s.split()
B.s.strip()
C.s.type()
D.s.search()

16.下面这个表达式的值为多少?

print(chr(ord('a') ^ 32))

A.a
B.'a'
C.'A'
D.A

17.用于除去字符串左右两侧的空格和特殊字符,是什么方法?

A.strip()
B.lower()
C.upper()
D.format()

18.下面这段代码,输出结果是什么?

import re

print(re.match('www', 'www.runoob.com').span())

A.(0, 2)
B.(1, 2)
C.(0, 3)
D.(1, 3)

19.“是不是朋友,帮忙砍一刀”!虽然拼多多上市颇受争议,但其砍价的营销模式几乎“尽人皆知”.小明写了一段模仿拼多多砍价的代码,假设一个好友每次只能砍掉不超过商品价格十分之一的价钱,小红要买一件4000元的商品,@小明帮忙砍价,根据这段代码小明砍价的输出结果可能为:

import random

price = int(input("商品价格:\n"))
decrease = random.uniform(0, price / 10)  # 随机砍价,砍掉价格不超过商品价格的十分之一
print("砍掉{:,.2f}元".format(decrease))

A.砍掉32元
B.砍掉0,234.56元
C.砍掉333.333333333元
D.砍掉259.66

20.字符串也属于序列,可以通过索引访问.下列代码的输出结果为:

word = '蒹葭苍苍,白露为霜。所谓伊人,在水一方。'
print(word.index("蒹葭苍苍,白露为霜。"))
print(word.index("蒹葭萋萋,白露未晞。"))

A.0 报错
B.[0,1,2,3,4,5,6,7,8,9,] 报错
C.[0,1,5,6]
D.报错

21.下面的代码输出结果是什么?

import re

pattern = re.compile(r'\d+')
result1 = pattern.findall('run88oob123google456', 0, 10)
print(result1)

A.run88oob123google456
B.['run88oob123google456']
C.['88', '12']
D.['88', '12','456']

22.年轻与否无关乎年龄,而在于你是否依旧热血沸腾,感想敢拼!请判断下列代码的输出结果:

import re

string = 'Success will belong to those who never say "impossible". '
pattern = '[a-zA-Z]+'
p = re.findall(pattern, string)
print(' '.join(p))

A.will belong to those who never say impossible
B.['Success', 'will', 'belong', 'to', 'those', 'who', 'never', 'say', 'impossible']
C.Success will belong to those who never say impossible
D.Success will

23.集才华和幽默于一身的李健老师曾说过“Practice makes perfect.”没错,熟能生巧!正则表达式并不难,只要练得多,必能记得准.准备好了吗?开练!下列代码的输出结果为:

import re

m = re.findall('\d+', 'Ready?321Go!')
n = re.findall('\d+?', 'Ready?321Go!')
print('m=', m)
print('n=', n)

A.m= ['321'] n= ['321']
B.m= ['321'] n= ['3', '2', '1']
C.m = ['321','Go!'] n = ['3', '2', '1', 'Go!']
D.m= ['3', '2', '1'] n= ['3', '2', '1']

24.写英文邮件时,一般都是以“Dear xxx”的格式开头,如果想输出“Dear Wilson:”,则下列代码中 ①②处分别填入:

import re

pat = '{name}'
text = 'Dear  ① '
result = re.sub()
print(result)

A.①name  ② pat,'Wilson',text
B.{name} ② pat,'name',text
C.{name}: ② pat,'Wilson',text
D.{Wilson}: ② pat, 'name', text

25.下列代码的输出结果为:

s1 = '无敌'
s2 = ['阳光', '美少女']
s3 = s1.join(s2)
print(s3)

A.阳光美少女无敌
B.无敌美少女阳光
C.阳光无敌美少女
D.['阳光','美少女', '无敌']

26.strip()的“功力”到底有多深?计算表达式’abcab’.strip(‘ab’)的值就知道了!正确的值为:

A.bca
B.bcab
C.abca
D.c

27.给出如下代码,以下哪个选项能输出字符“八”出现的次数?

s = list(
    "巴老爷有八十八棵芭蕉树,来了八十八个把式要在巴老爷八十八棵芭蕉树下住."
    "老爷拔了八十八棵芭蕉树,不让八十八个把式在八十八棵芭蕉树下住.八十八个"
    "把式烧了八十八棵芭蕉树,巴老爷在八十八棵树边哭.")

A.print(s.count("八"))
B.print(s.index("八"))
C.print(s.index("八"),6)
D.print(s.index("八"),6,len(s))

28.小明未开启手机指纹支付方式,需要设置6个数字的微信支付密码,下列哪项是正确的微信支付密码格式:

A.[0-9]{1,6}
B.[0-6]{0,9}
C.[0-9]{6}
D.[0-9]{1-6}

29.“轻轻地尝一口,这香浓的诱惑,你喜欢的样子我都有。”别误会,我是你的心灵健康食品——冰淇淋啦!我有下图所示口味,要如何输出如图所示效果呢?①处应填入:
在这里插入图片描述

print('********冰淇淋口味********\n')
taste = ['香草', '抹茶', '酸奶', '巧克力', '原味']
total = '/'.(taste)
print(total)

A.split
B.join
C.find
D.strip

30.小明要求使用正则表达式匹配一个非负整数的数值,下面哪个表达式是非负整数?

A.^\c+$
B.^\b+#
C.^\d+$
D.^\d+@

31.动物园里有什么?有elephant,whale,panda,deer,monkey,在这些动物中,只有whale鲸鱼是生活在水中的,想要输出在陆地上生活的动物,小明写了如下代码,是否正确:

import re

animal = 'elephant,whale,panda,deer,monkey'
m = re.match('whale', animal)
print(animal[:m.start() - 1] + animal[m.end():])

A.正确
B.不正确,第3行代码中的match应改为search
C.不正确,第2行代码应为 animal = ['elephant','whale','panda','deer','monkey']
D.不正确,第4行代码应改为print(m)

32.小地瓜想要把一段文字中的所有开头的数字内容输出出来,看看他写的对么?

import re

s = "i love you not because 12sd 34er 56df e4 54434"
content = re.findall(r\d\b",s)
print(content)

A.3行最后加:
B.4行最后的s去掉
C.3行r\d\b",s改为r"\b\d",s
D.没有错误

33.'先相信自己,然后别人才会相信你。'这是小明最喜欢的一句话,他想计算这句话的长度,看看他写的对么?

str1='先相信自己,然后别人才会相信你。'
length = len(str1)
print(len)

A.1行单引号去掉
B.2行str1后加:
C.3len改成length
D.没有错误

34.有一段无序的字符串,小亮想要在其中查找出’1’第一次出现的位置,看看他写的对吗?

str1 = 'xagewfa4w14qd'
print(str1.count('1'))

A.第一行单引号改为双引号
B.第二行count改为found
C.第二行count改成find
D.没有错误

35.历史首金!2018年8月29日,雅加达亚运会电子竞技表演赛——英雄联盟项目决赛中,中国力克韩国赢得LOL金牌,成功的为电竞正名.LOL是 League of Legends的简称,中文译为《英雄联盟》.小明想输出League of Legends中长度为6个字母的单词,但他写的代码有误,请问应怎么改正:

import re

event = 'League of  Legends'
pat = re.compile('[a-z]{6}')
print(pat.findall(event))

A.4行代码应改为pat = re.compile(r'\b[a-zA-Z]{6}\b')
B.4行代码应改为pat = event.compile(r'\b[a-zA-Z]{6}\b')
C.5行代码应改为print(event.findall(pat))
D.5行代码应改为print(pat.search(event))

36.小明写了一段是i like work,他想把这句话变成大写的,看看他写的对么?

str1 = 'i love working'
print(str1.lower())

A.1行working改为working:
B.2行lower改为upper
C.2行lower()改为lower(str1)
D.没有错误

37.小明在运动会百米比赛中跑了10.8秒取得了冠军,他想用字符串拼接法输出自己的百米成绩,看看他有什么错误吧!

str1 = '小明的百米成绩是'
num = 10.8
str2 = '分'
print(str1 + num + str2)

A.第一行最后加:
B.第三行去掉引号
C.第四行num改成str(num)
D.没有错误

38.逼疯老外的中文台词!神雕侠侣中小龙女说过一句话:“我也想过过过儿过过的生活。” Peter请教小明这句话到底什么意思?该怎么断句?小明看后哈哈大笑,解释说这句话的意思其实是“我也想过过(体验)过儿(杨过)过过(经历过)的生活。”所以小明写了如下代码帮Peter断句,想要输出“我也想过过 过儿 过过 的生活。”,请问代码是否有误?

import re

dialogue1 = "我也想过过过儿过过的生活。"
meaning = "我也想过过(体验)过儿(杨过)过过(经历过)的生活。"
pattern = r'(体验)|(杨过)|(经历过)'
dialogue2 = re.findall(pattern, ' ', meaning)
print(dialogue2)

A.准确无误
B.4行代码应改为pattern = r'(体验),(杨过),(经历过)'
C.5行代码中findall应改为sub
D.5行代码应改为dialogue2 = re.search(pattern,meaning)

39.做游戏“成语接龙”,一个人输入一个成语,另一个人来接龙,小明写了如下代码,这个游戏能运行起来吗?

s1 = input('请输入一个成语:\n')
s2 = input('请为<', s1, '>接龙:\n')
if s2.startswith(s1[3]) and len(s2) == 4:
    print("接龙成功")
else:
    print("接龙失败")

A.可以
B.不能,第2行中的","应改为"+"
C.不能,第3行的startswith应改为endswith
D.不能,第3行的s1[3] 应改为s1.endswith()

40.有一段话,刘二豆想提取每行中完整的年月日和时间字段,他写的对么?

import re

s = """se234 1987-02-09 07:30:00
1987-02-10 07:25:00"""
content = re.find(r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}", s, re.M)
print(content)

A.4行移动到第3行
B.33行引号改成1对引号
C.5行find改成findall
D.5r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}",s,re.M改成r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}"