Python之字符串练习题(下)

21.nameStr=“Albert Einstein",如何使用字符串运算符“:”来提取 nameStr 中的名和姓?

ming=nameStr[:6]
xing=nameStr[7:]

23.下面哪些语句在运行时不会出错?
(a)var ='xyz ’ * 10.5
(b)var =‘xyz’ * ‘5
©var=‘’xyz’*5
(d)var=‘xyz’*5.0

重复运算符中的数字一定要是整数的数字,不能是浮点数或字符串。
(c)不会出错

24.(逆转字符串)给定一个字符串,比如x='AlanTuring’,写个表达式,逆转它得到一个字符串,y=gniruT nalA’。

y=x[::-1]

25.给出字符串ab_string='abababababababab"。写一个表达式,去掉其中所有的“b",得到一个字符串a_string=‘aaaaaaaa’

a_string=ab_string.replace("b","")

26.给定字符串’abcdefghij’,写一行代码,显示下列结果(提示:使用分片)
(a)'jihgfedcba"
(b)*adgf’
©*igeca"

s="abcdefghij"
(a)s[::-1]
(b)s[::3]
(c)s[-2::-2]

27.使用find方法,编写一个短程序,当输入“Who’s on first?”时,输出两个字母’o’的索引值。

s=input()
index=0
while s.find("o",index)!=-1:print(s.find("o",index))index=s.find("o",index)+1

28.编写程序,将输入“Chapman,Graham Arhur”转换成“Graham Arhur Chapman”的形式

a,b=input().split(",") #以“,”分隔,然后赋值给a,b
print(b+" "+a)

30.与.lower 一样,编写程序,提示输入一个字符串,不使用string.lower方法,将字符串变成小写形式。

# 提示用户输入字符串  
input_string = input("请输入一个字符串:")  # 初始化一个空字符串,用于存放小写形式的字符  
lowercase_string = ''  # 遍历输入字符串中的每个字符  
for char in input_string:  # 检查字符是否是大写字母  if 'A' <= char <= 'Z':  # 将大写字母转换为小写字母  # 大写字母的ASCII码值和小写字母的ASCII码值相差32  lowercase_char = chr(ord(char) + 32)  lowercase_string += lowercase_char  else:  # 如果不是大写字母,保持原字符  lowercase_string += char  # 输出转换后的字符串  
print("小写形式的字符串是:", lowercase_string)

32.下述代码:
x=input(‘Enter a string:’)
y=0
for i in x:
print y,i
y+=1
(a)如果输人“hello”,将输出什么?
(b)使用枚举的方式重构代码。

(a) 如果输入 "hello",根据给定的代码,输出将如下所示:
0 h
1 e
2 l
3 l
4 o(b) 如果要使用 `enumerate` 方法重构代码,可以这样实现:```python
x = input('Enter a string:')
for y, i in enumerate(x):print(y, i)

33.虽然对Pyihon输出进行格式化会很麻烦,但也能大幅提高输出的可读性。尝试建立一个字符串表,输出以下值:

name=['Methane','Ethane','Propane','Butane']
M_point=[-162,-89,-42,-0.5]
B_point=[-183,-172,-188,-135]
print("Melting and Boiling Points of Alkanes")
print("%-10s\t%-20s\t%-20s"%("Name","Melting Point(deg C","Boiling Point(deg C"))
for i in range(4):print("%-10s\t%-20s\t%-20s"%(name[i],M_point[i],B_point[i]))

34.x='water’,x.replace(‘w’,“c”,1)返回什么?

cater

35.下面的代码产生了错误:“ValueEror:too many values to unpack”。为什么?
first,second =input(‘two space-separated numbers:’)

右侧输入得到一个字符串,只有一个值。
左侧有两个变量
所以会报错

36.下面的代码:
myList = []
for i in range(0,6,2):
for k in range(4):
myList.append(i+k)
print(i) #Line 1
print(k) #Line 2
print(myList) #Line 3
(a)标号为1的行输出什么?
(b)标号为2的行输出什么?
©标号为3的行输出什么?

第一个for循环,range函数得到0,2,4,循环3次
第二个for循环,range函数得到0,1,2,3,循环4次
(a)4
(b)3
(c)[0, 1, 2, 3, 2, 3, 4, 5, 4, 5, 6, 7]

37.写一个程序,提示输入两个字符串,然后进行比较,输出较小的字符串。要求只能使用单字符比较操作。

# 提示用户输入两个字符串
str1 = input("请输入第一个字符串: ")
str2 = input("请输入第二个字符串: ")len1 = len(str1)
len2 = len(str2)smaller=''for i in range(min(len1, len2)):if str1[i] < str2[i]:smaller=str1break     # str1 字符小于 str2,结束循环,最小是str1elif str1[i] > str2[i]:smaller=str2break     # str1 字符大于 str2,结束循环,最小是str2if smaller=="":   #前面比较没有得到最小,最小的刚好是大的前缀if len1 < len2:smaller=str1else:smaller=str2print("较小的字符串是:", smaller)

编程项目

1.智多星

智多星是一种有两名玩家的密码破译游戏;可以使用文本模拟方式在计算机上进行。我们可以通过互联网来了解该游戏的玩法。如果有一个真实的棋盘玩游戏会更好。游戏的玩法是:

  • 一个解码板,板上一端有一个盾,盾下面是排成一行的4个洞;板上还有12行,每行都有4 个大洞和4个小洞。
  • 代码钉有6种颜色(颜色ABCDEF),钉子是圆头的,将放置在解码板的大洞上。
  • 计分钉子是方头的,有黑色和白色两种,将放置在解码板上的小孔中。游戏中只计算每行上黑色和白色计分钉子的数量。

一名玩家为编码者,他会选择4种颜色的钉子放在盾牌下,而其他玩家不知道钉子是如何放置的。在这个版本里,颜色不能重复,也就是说,AABB的放法是不允许的。游戏的目标就是要解码者找出是哪4种颜色,并且是如何编码(摆放)的。
解码者试图在12轮猜测中找出编码格局(包括颜色和顺序)。每一轮猜测将在解码板上放置一排代码钉子。一旦放置好,编码者通过在4个小孔中依次放入计分钉子来给出反馈信息。颜色和位置都猜测正确,则在该位置放置一个黑色的计分钉子。如果颜色正确的钉子但位置不正确,则放一个白色的计分钉子。
当编码者提供反馈后,解码者进行下一轮的猜测,猜测和反馈交替进行,真到破译密码或12次猜测都错误为止。
编写程序以提供反馈的方式来模拟游戏。解码者通过输入颜色字符串进行每次猜测。模拟严格遵守猜测规则,即猪测由“ABCDEF”中的4种颜色组成。反馈是给出黑钉的数量和白钉的数量。程序确定反馈内容,并显示出来。猜测正确时,程序宣布获胜,如果12次猜测都不正确则宣布失败。此外,程序要显示输出完整的解码板状态,这样进行密码破译时,可以更方便参考前面的猜测情况。
提示:

  • 使用纸和铅笔玩这个游戏,在进行游戏算法设计前了解游戏。
  • 使用字符串表示代码和猜测。
  • 允许使用的颜色集合为字符串’ABCDEF’,这样可以使用“in”来检查字符串成员
  • 字符串方法isalpha 可以用于检查输人。
  • 可以使用连接方法,将猜测历史作为一个长字符串。行结束字符’\n’,用于提高输出可
    读性。
    (a)程序的第一个版本提示编码者输入编码。这样的游戏程序没有太大的可玩性,但它更容易测试。
    (6)程序的最终版本使用随机模块来创建编码者的编码,因此可以屏蔽解码者。
    i.使用 index=random.randint(start,end)函数来产生随机索引,start<indexend,从’ABCDEF’中选择代码字符
    ii.或者,使用random.sample(popuration,k),从指定的population 中返回长度为k的样本。连接表达式将函数返回值转换为字符串:
    code:".join(random.sample(‘ABCDEF’,4))

疯狂 Libs

《疯狂利布斯》(madhibs.com)是一个给孩子玩的古老文字游戏。游戏中给出提示,让玩家输入各类单词(颜色、女孩的名字、地点等),然后这些单词被插人一个预定义的故事中。在预先定义的故事中,用提示的值代替对应单词。例如:假设提示输人一个动词和名词,玩家输入了“giggle”和“spark"如果预定义的字符串为“哈姆雷特”的第一行,形式如下:
To VERB or not to VERB: that is the NOUN.
替换后的版本是:
To giggle or not to giggle: that is the spark :
创建你自己的预定义故事,其中要取代词类用大写表示:VERB、NOUN、ADJECTIVE等。如果在预定义的故事中需要增加一些参数,则用其他合适的单词来表示,这样你的故事会更有趣,例如BOYS_NAME、COLOR、ACTIVE-VERB等,要有创意。如果没什么想法,不妨从童话开始。例如,这是《小红帽》故事的开篇:story = “Once upon a time in the middle of a ADJECTIVE ONE NOUN ONE stood aADJECTIVE TWO NOUNTWO,the home of a ADJECTIVE ONE ADJECTIVE THREENOUN THREE known to everyone as GIRS NAME .”
提示用户输入字符串来取代篇章中指定的不同部分。显示出修改后的故事提示:字符串方法replace(old,new)会有用。

##《儿童黑话》
《儿童黑话》(PigLatin)是单词中的改换文字游戏。将英文单词转换为PigLatin 形式,即辅音被调换到单词的末尾,并且加上“ay”。具体而言,有两条规则:
(a)如果一个词以元音开头,单词的末尾添加“yay"
(b)如果单词以辅音开头,从开始处到第一个元音出现的位置出现的辅音字母,都连接到单词的末尾。最后,把“ay"添加到单词的末尾.例如:

  • dog= ogday
  • scratch => atchscray
  • is = isyay
    apple = appleyay
    写一个程序,反复提示输人英文单词,将单词转换成PigLain形式,显示转换后的单词。如果用户输入的一个句号,该程序终止。提示:
  • 使用分片,它可以提取第一个字符进行检查,还可以将分片连接,产生新词
  • 使用“in”运算符构造原音字符串,例如vowels=‘aeiou’。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/406206.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter Web 正式官宣弃用 HTML renderer , Canvas 路线成为唯一

Flutter Web 团队计划在 2025 年的第一个 Flutter stable 版本中弃用 HTML renderer&#xff0c;当然在 master 和 beta 中会更早合并这一更改。 关于这个话题&#xff0c;其实在年初的我就曾发布过 《Flutter 即将放弃 Html renderer 》&#xff0c; Html renderer 从 2018 年…

Redis远程字典服务器(7)—— set类型详解

目录 一&#xff0c;基本情况 二&#xff0c;常用命令 2.1 sadd 2.2 smembers&#xff0c;sismember 2.3 spop&#xff0c;srandmember 2.3 smove&#xff0c;srem 2.4 sinter&#xff0c;sinterstore求交集 2.5 sunion&#xff0c;sunionstore求并集 2.6 sdiff&#…

MySQ分库分表与MyCat安装配置

目录 介绍 拆分策略 垂直拆分 1. 垂直分库 2. 垂直分表 水平拆分 1. 水平分库‘ 2. 水平分表 实现技术 MyCat概述 安装 概念介绍 MyCat入门 需求 环境准备 分片配置 启动服务 连接测试 执行SQL语句测试 MyCat配置 1. schema.xml 1. schema标签 2. dat…

python | 图片转换为 pdf 实现方法

目录 一、PIL 库简介及安装使用方法 &#xff08;一&#xff09;python 不同版本下 PIL 的使用方法 二、图片转换为 pdf 的两种实现方法 &#xff08;一&#xff09;简易版——pdf 页面尺寸跟随图片大小 &#xff08;二&#xff09;常用版——pdf 每页尺寸统一为 A4 一、P…

C++,std::bind 详解

文章目录 1. 概述2. 基本用法2.1 使用占位符2.2 示例 3. 总结 1. 概述 std::bind 是 C11 引入的一个功能&#xff0c;它允许你将函数&#xff08;或成员函数、函数对象&#xff09;与其参数绑定&#xff0c;生成一个新的可调用对象。这个功能在需要将函数及其参数一起传递给其…

闲鱼IP属地地址:去外地会自动变化吗?解析实时更新机制

在数字化时代&#xff0c;网络交易平台如闲鱼已成为我们日常生活中不可或缺的一部分。在进行二手交易时&#xff0c;了解对方的地理位置信息成为许多买家和卖家的关切点。那么&#xff0c;去外地闲鱼IP会变吗&#xff1f;闲鱼IP属地地址是实时更新吗&#xff1f;本文将深入探讨…

基于百度智能云爆破验证码识别

目录 基于百度智能云爆破验证码识别 一、基于php提供验证码校验接口 二、基于百度云API识别验证码 1、领取资源&#xff0c;创建应用 2、利用应用的API Key和Secret Key获取Access Token 3、文字识别 4、编写爆破程序 基于百度智能云爆破验证码识别 一、基于php提供验证…

华为手机换ip地址怎么换?手机换ip地址有什么影响

在数字化时代&#xff0c;网络已成为我们生活中不可或缺的一部分。无论是日常沟通、工作学习还是娱乐休闲&#xff0c;我们都离不开互联网。然而&#xff0c;随着网络安全问题的日益突出&#xff0c;如何保护个人隐私和信息安全成为了用户关注的焦点。更换手机IP地址作为提升网…

2024年下半年,单独划定的地区报名软考的温馨提示

软考分数线分为全国分数线、省分数线&#xff08;陕西省下半年已取消&#xff0c;仅剩青海省&#xff09;、以及单独划线地区分数线。目前各地2024年下半年软考正在接受报名&#xff0c;请单独划线地区的考生注意——有些地区可能要求考生在考试后进行单独划线申请&#xff0c;…

删除或丢失的移动硬盘数据如何恢复?三种办法助你找回宝贵资料

在数字化时代&#xff0c;移动硬盘已成为我们存储重要数据不可或缺的工具。然而&#xff0c;数据丢失或误删除的情况时有发生&#xff0c;让人倍感焦虑。别担心&#xff0c;本文将为你详细介绍如何恢复删除或丢失的移动硬盘数据&#xff0c;帮助你找回那些宝贵的资料。 一、检…

『 C++ 』IO流

文章目录 IO流概述iostream 的标准对象C流和C标准库I/O函数的同步 sync_with_stdiofstream 文件流文件流的打开标志二进制读写二进制读写的浅拷贝问题文本读写 字符串流注意 IO流概述 流是指数据的有序传输序列,路表示数据从一个地方流向另一个地方的过程,流可以是输入流也可以…

用Python在Ashare获取金融数据官方文档解读

Ashare&#xff0c;也被写作AKShare&#xff0c;是一个基于Python的开源完全免费的财经数据接口库。它的主要目的是为用户提供股票、期货、期权、基金、外汇、债券、指数、加密货币等金融产品的基本面数据、实时和历史行情数据、衍生数据的采集、清洗和落地的一整套工具。AKSha…

算法的学习笔记—把二叉树打印成多行(牛客JZ78)

&#x1f600;前言 在算法面试中&#xff0c;二叉树的层序遍历是一个经典的题目。而这道题的要求是进一步将二叉树的每一层结点值打印成多行&#xff0c;即同一层结点从左至右输出&#xff0c;最终结果存放到一个二维数组中返回。接下来&#xff0c;我们将通过代码实例详细解析…

什么是光伏气象站—光伏气象站的简述

随着全球对可再生能源需求的日益增长&#xff0c;光伏发电作为清洁、可再生的能源形式&#xff0c;正逐步成为能源结构转型的重要力量。然而&#xff0c;光伏电站的发电效率受到多种气象因素的影响&#xff0c;如太阳辐射强度、温度、风速、湿度等。为了最大化光伏系统的发电潜…

C/C++ 多线程[1]---线程创建+线程释放+实例

文章目录 前言1. 多线程创建2. 多线程释放3. 实例总结 前言 说来惭愧&#xff0c;写了很久的代码&#xff0c;一个单线程通全部。可能是接触的项目少吧&#xff0c;很多多线程的概念其实都知道&#xff0c;但是实战并没有用上。前段时间给公司软件做一个进度条&#xff0c;涉及…

Java 2.4 - JVM

一、Java 内存区域详解&#xff08;重点&#xff09; 本篇讨论的是 HotSpot 虚拟机 相比于 C 而言&#xff0c;程序员不需要对每个 new 操作都写对应的 delete / free 操作&#xff0c;这些操作我们会交给虚拟机去做。因此&#xff0c;如果不了解虚拟机的原理&#xff0c;一旦…

【Vue3】集成 Ant Design Vue

【Vue3】集成 Ant Design Vue 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗…

Android TableLayout中TextView文本不居中问题

概述 | 平台 RK3288 Android 8.1 compileSdkVersion 26. | 问题 使用了TableLayout布局电话的拨号按键界面, 效果如下图 (正常): 在后续开发过程的某次修改后, 出现效果图(不正常): 合并两张效果图可看得更明显(红线参考位置): 在布局中 TextView 的 android:g…

SEO优化:如何优化自己的文章,解决搜索引擎不收录的问题

可以使用bing的URL检查&#xff0c;来检查自己的文章是不是负荷收录准测&#xff0c;如果页面有严重的错误&#xff0c;搜索引擎是不会进行收录的&#xff0c;而且还会判定文章为低质量文章&#xff01; 检查是否有问题。下面的页面就是有问题&#xff0c;当然如果是误报你也可…

Stage模型应用程序包结构

一、开发态包结构 在DevEco Studio上创建一个项目工程&#xff0c;并尝试创建多个不同类型的Module。根据实际工程中的目录对照本章节进行学习&#xff0c;可以有助于理解开发态的应用程序结构。 工程结构主要包含的文件类型及用途如下&#xff1a; 文件类型说明配置文件 包括…