Python之字符串练习题(下)

news2024/9/23 11:21:39

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=str1
        break     # str1 字符小于 str2,结束循环,最小是str1
    elif str1[i] > str2[i]:
        smaller=str2
        break     # str1 字符大于 str2,结束循环,最小是str2

if smaller=="":   #前面比较没有得到最小,最小的刚好是大的前缀
    if len1 < len2:
        smaller=str1
    else:
        smaller=str2

print("较小的字符串是:", 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.coloradmin.cn/o/2050718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML静态网页成品作业(HTML+CSS)——美食企业介绍设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

在亚马逊云科技上对Stable Diffusion模型提示词、输出图像内容进行安全审核

项目简介&#xff1a; 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案&#xff0c;帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践&#xff0c;并应用到自己的日常工作里。 本次介绍的是如何在亚马逊云科技机器学习托…

HighPoint SSD7749M2:128TB NVMe 存储卡实现28 GB/s高速传输

HighPoint Technologies推出了一款全新的SSD7749M2 RAID卡&#xff0c;能够在标准的桌面工作站中安装多达16个M.2 SSD&#xff0c;实现高达128TB的闪存存储。该卡通过PCIe Gen4 x16接口提供高达28 GB/s的顺序读写性能。这些令人瞩目的性能规格伴随着高昂的价格标签。 #### 技术…

ArcGIS Pro基础:设置快速访问工具栏

上图【红色框线】内显示就是快速访问工具栏&#xff0c;访问非常方便&#xff0c;不需要切换到选项卡了 上图显示&#xff0c;可以勾选或者取消进行设置&#xff0c;通过【更多命令】可以选择更多的工具 如上图所示&#xff0c;可以选择自己经常使用的命令&#xff0c;可以输入…

手撕线程池

1.手撕线程池原理图 2.代码实现 // 手撕线程池 public class Main {public static void main(String[] args) {ThreadPool threadPool new ThreadPool(1,1000,TimeUnit.MILLISECONDS,1,(queue, task) -> {queue.putByTime(task,1500,TimeUnit.MILLISECONDS);});for (int i…

LangChain 实战演练:借助 LangChain SQL Agent 与 GPT 实现文档智能分析及交互

LangChain实战&#xff1a;利用LangChain SQL Agent和GPT进行文档分析和交互 我最近接触到一个非常有趣的挑战&#xff0c;涉及到人工智能数字化大量文件的能力&#xff0c;并使用户可以在这些文件上提出复杂的与数据相关的问题&#xff0c;比如&#xff1a; 数据检索问题&…

【qt】基于tcp的消息发送

我们需要实现客户端发消息&#xff0c;服务端接收消息 服务端界面新增接收消息 实现客户端发送和清空 发送数据需要将发送栏的信息转化为QByteArray,然后使用socket的write发送过去 实现服务端的接收 效果演示 20240818_111603 代码展示 server Widget.h #ifndef WIDGET_H …

Java的File类与IO流

目录 1. java.io.File类的使用 1.1 概述 1.2 构造器 1.3 常用方法 1、获取文件和目录基本信息 2、列出目录的下一级 3、File类的重命名功能 4、判断功能的方法 5、创建、删除功能 1.4 练习 2. IO流原理及流的分类 2.1 Java IO原理 2.2 流的分类 2.3 流的API 3. …

如何在 Windows/Mac/在线/iPhone/Android 上将 PDF 转换为 Word

PDF&#xff08;便携式文档格式&#xff09;是一种流行的格式&#xff0c;广泛用于在数字电子设备中呈现文档。输出文件小且兼容性强&#xff0c;使 PDF 如此受欢迎。但是&#xff0c;编辑 PDF 文件并非免费。您无需购买 PDF 编辑器&#xff0c;而是可以将 PDF 转换为 Word 进行…

「OC」NSPredicate —— 使用谓词过滤元素

「OC」NSPredicate —— 使用谓词过滤元素 文章目录 「OC」NSPredicate —— 使用谓词过滤元素前言介绍常见用法**比较运算符****逻辑运算符****字符串比较运算符****聚合运算符****用于字典或者类当中****格式说明符&#xff08;占位符&#xff09;** 实际运用总结参考文章 前…

05创建型设计模式——原型模式

一、原型模式简介 原型模式&#xff08;Prototype Pattern&#xff09;模式是一种对象创建型模式&#xff0c;它采取复制原型对象的方法来创建对象的实例。使用原型模式创建的实例&#xff0c;具有与原型一样的数据。 1&#xff09;由原型对象自身创建目标对象。换句话说&…

python基础语法 010 类和对象-3 方法

1.3 方法 属性表示是一个类当中的成员或类的特征&#xff0c;而方法是&#xff1f;&#xff1f; 方法&#xff1a;表示类、对象的行为&#xff0c;方法本质上是函数&#xff0c;是一个特殊的函数 属性名称一般为名词&#xff0c;方法名称一般为动词 1.3.1 方法 VS 属性 1、…

24/8/17算法笔记 DDPG算法

深度确定性策略梯度&#xff08;DDPG&#xff09;算法是一种用于解决连续动作空间强化学习问题的算法。它结合了确定性策略梯度&#xff08;DPG&#xff09;和深度学习技术的优点&#xff0c;通过Actor-Critic框架进行策略和价值函数的近似表示。DDPG算法的关键组成部分包括经验…

【RAG综述】北京大学检索增强技术综述

RAG for AIGC ​ 图 1 描述了一个典型的 RAG 过程。给定一个输入查询&#xff0c;检索器识别相关的数据源&#xff0c;检索到的信息与生成器交互以改进生成过程。根据检索结果如何增强生成&#xff0c;有几种基础范式&#xff08;简称基础&#xff09;&#xff1a;它们可以作为…

STM32的蜂鸣器

蜂鸣器分为有源蜂鸣器和无源蜂鸣器。 有源蜂鸣器&#xff1a;内部有震荡源&#xff0c;只要通电即可自动发出固定频率的声音。&#xff08;频率固定无 法控制音色&#xff09; 。 无源蜂鸣器&#xff1a;内部无震荡源&#xff0c;需要外部脉冲信号驱动发声&#xff0c;声音频…

《机器学习》 线性回归 一元、多元 推导 No.3

一、什么是线性回归 线性回归是一种用于预测连续数值的机器学习算法。它基于输入特征与目标变量之间的线性关系建立了一个线性模型。线性回归的目标是找到最佳拟合直线&#xff0c;以最小化预测值与实际值之间的误差。这个线性模型可以用来进行预测和推断。 线性回归的模型可以…

SpringBoot Profile多环境配置及配置优先级

【SpringBoot学习笔记 三】Profile多环境配置及配置优先级_profiles队列中的优先值-CSDN博客 Profile激活方式 但是我们发现一个问题&#xff0c;就是每次切换环境还需要去配置里指定&#xff0c;然后通过修改dev为test或prod来切换项目环境 , 这样做的话每次切换环境都要重新改…

前端面试——如何判断对象和数组

给你一个值&#xff0c;如何判断其是对象还是数组&#xff1f;&#xff1f;&#xff1f; 我们先给出数据 var lists [1,2,3,4,5]var objs {length:5 } 我们分别尝试如下五种方法 console.log((✘)使用length,lists.length,objs.length); console.log((✔)使用isArray,Arr…

【已成功EI检索】第三届机电一体化技术与航空航天工程国际学术会议(ICMTAE 2023)

重要信息 大会官网&#xff1a;www.icmtae.org 大会时间&#xff1a;2023年9月15-17日 大会地点&#xff1a;中国-江西南昌理工学院&#xff08;南昌市青山湖区经济技术开发区英雄大道901号&#xff09; 接受/拒稿通知&#xff1a;投稿后1周内 收录检索&#xff1a;EI 和 …

Vulkan 学习(4)---- Vulkan 逻辑设备

目录 Vulkan Logical Device OverView逻辑设备创建VkDeviceQueueCreateInfoDeviceExtension获取DeviceQueue参考代码 Vulkan Logical Device OverView 在 Vulkan 中&#xff0c;逻辑设备(Logical Device)是与物理设备(Physical Device)交互的接口,它抽象了对特定GPU(物理设备)…