鱼C论坛

 找回密码
 立即注册
查看: 336|回复: 15

py

[复制链接]
发表于 2024-5-11 17:05:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1、回文串是指这个字符串无论从左读还是右读,都是相同的。请编写一个程序,接收用户输入的一个字符串,然后判断它是否是回文串。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-11 17:05:32 | 显示全部楼层
可以通过比较字符串和它的反转是否相等来判断一个字符串是否是回文串。下面是一个简单的示例代码:
def is_palindrome(s):
    # 去除空格和标点符号,并将所有字母转为小写
    s = ''.join(e for e in s if e.isalnum()).lower()
    # 判断字符串是否等于它的反转
    return s == s[::-1]

# 接收用户输入的字符串
user_input = input("请输入一个字符串:")

if is_palindrome(user_input):
    print("是回文串")
else:
    print("不是回文串")

这段代码中,我们定义了一个`is_palindrome`函数来判断一个字符串是否是回文串。在这个函数中,我们首先使用`isalnum`方法过滤掉字符串中的非字母数字字符,然后使用`lower`方法将所有字母转为小写。接下来,我们判断字符串是否等于它的反转,如果相等,则说明是回文串。最后,根据判断结果输出相应的提示信息。

你可以尝试运行这段代码,输入不同的字符串进行测试。注意,这段代码对于中文字符串也是有效的。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-11 17:10:16 | 显示全部楼层
FishC 发表于 2024-5-11 17:05
可以通过比较字符串和它的反转是否相等来判断一个字符串是否是回文串。下面是一个简单的示例代码:

1、输入两个字符串,从第一个字符串中删除第二个字符串中的所有字符。例如,输入的两个字符串分别是”abcdea”和”ab”,输出的结果是”cde”。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 17:10:33 | 显示全部楼层
彩笔凡 发表于 2024-05-11 17:10
1、输入两个字符串,从第一个字符串中删除第二个字符 ...


可以使用Python的字符串操作来实现这个功能。一种简单的方法是使用字符串的`replace()`方法,将第二个字符串中的每个字符替换为空字符串。

下面是一个示例代码:
def remove_chars(str1, str2):
    for char in str2:
        str1 = str1.replace(char, "")
    return str1

# 输入两个字符串
str1 = input("请输入第一个字符串:")
str2 = input("请输入第二个字符串:")

# 删除str2中的字符
result = remove_chars(str1, str2)
print("删除后的结果是:", result)

在这段代码中,我们定义了一个`remove_chars`函数,接受两个字符串作为参数。然后,使用`for`循环遍历第二个字符串的每个字符,通过`replace`方法将其替换为空字符串。最后返回处理后的第一个字符串。

你可以尝试运行这段代码,输入你自己的字符串进行测试。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-11 17:14:41 | 显示全部楼层
FishC 发表于 2024-5-11 17:10
可以使用Python的字符串操作来实现这个功能。一种简单的方法是使用字符串的`replace()`方法,将第二个 ...

3、有一个字符串“Xiamen University”,请编写程序找到字母“U”在字符串中的索引。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 17:14:59 | 显示全部楼层
彩笔凡 发表于 2024-05-11 17:14
3、有一个字符串“Xiamen University”,请编写程序找 ...


可以使用 Python 的字符串方法 `find()` 来找到指定字母在字符串中的索引位置。下面是一个示例代码:
s = "Xiamen University"
index = s.find("U")
print("字母 U 在字符串中的索引位置是:", index)

在这段代码中,我们定义了一个字符串 `s`,然后使用 `find()` 方法查找字母 "U" 在字符串中的索引位置。最后打印出结果。

你可以尝试运行这段代码,得到字母 "U" 在字符串中的索引位置。请注意,字符串的索引位置从 0 开始计数。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-11 17:19:27 | 显示全部楼层
FishC 发表于 2024-5-11 17:14
可以使用 Python 的字符串方法 `find()` 来找到指定字母在字符串中的索引位置。下面是一个示例代码:
...

4、编写程序测试两个字符串包含的字符是否完全相同(字符相同,并且字符出现的次数也必须相同)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 17:20:03 | 显示全部楼层
彩笔凡 发表于 2024-05-11 17:19
4、编写程序测试两个字符串包含的字符是否完全相同( ...


可以使用 Python 的内置函数 `collections.Counter` 来统计两个字符串中字符出现的次数,然后对比两个计数器对象是否相等。下面是一个示例代码:

from collections import Counter

def check_same_chars(str1, str2):
    # 统计两个字符串中字符的出现次数
    counter1 = Counter(str1)
    counter2 = Counter(str2)
   
    # 对比两个计数器对象是否相等
    return counter1 == counter2

# 输入两个字符串
str1 = input("请输入第一个字符串:")
str2 = input("请输入第二个字符串:")

# 检查两个字符串是否包含完全相同的字符
if check_same_chars(str1, str2):
    print("两个字符串包含的字符完全相同")
else:
    print("两个字符串包含的字符不完全相同")

在这段代码中,我们定义了一个 `check_same_chars` 函数,接受两个字符串作为参数。使用 `Counter()` 函数来创建计数器对象,分别统计两个字符串中字符的出现次数。最后,通过比较两个计数器对象是否相等来判断两个字符串是否包含完全相同的字符。

你可以尝试运行这段代码,输入不同的字符串进行测试。

需要注意的是,这里的字符出现次数也必须相同,即使字符种类相同但出现次数不同也会被判定为不完全相同。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-11 17:38:30 | 显示全部楼层
FishC 发表于 2024-5-11 17:20
可以使用 Python 的内置函数 `collections.Counter` 来统计两个字符串中字符出现的次数,然后对比两个 ...

5、实现一个整数加法计算器,要求能够根据用户的输入计算结果,用户的输入格式类似于“3+2”这种形式。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 17:38:53 | 显示全部楼层
彩笔凡 发表于 2024-05-11 17:38
5、实现一个整数加法计算器,要求能够根据用户的输入 ...


可以使用字符串的`split()`方法来将用户的输入拆分成操作数和运算符,然后进行相应的计算。下面是一个示例代码:

def calculator(expression):
    # 拆分操作数和运算符
    operand1, operator, operand2 = expression.split("+")
   
    # 将操作数转为整数
    operand1 = int(operand1)
    operand2 = int(operand2)
   
    # 根据运算符进行加法计算
    result = operand1 + operand2
   
    return result

# 接收用户输入的表达式
expression = input("请输入一个加法表达式(格式为 a+b):")

# 调用计算器函数计算结果
result = calculator(expression)

# 输出计算结果
print("计算结果是:", result)

在这段代码中,我们定义了一个`calculator`函数,接收一个加法表达式字符串作为参数。首先,使用`split`方法将输入的表达式拆分成操作数和运算符,并赋值给对应的变量。然后,通过`int()`方法将操作数转为整数类型。最后,根据运算符进行加法计算并返回结果。

你可以尝试运行这段代码,输入不同的加法表达式进行计算。

请注意,这段代码只适用于用户输入的加法表达式格式为“a+b”。如果要支持其他运算符或更复杂的表达式,请根据需要进行相应的修改。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-11 17:44:33 | 显示全部楼层
FishC 发表于 2024-5-11 17:38
可以使用字符串的`split()`方法来将用户的输入拆分成操作数和运算符,然后进行相应的计算。下面是一个 ...

报错
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/Test/venv/TEST.py", line 19, in <module>
    result = calculator(expression)
  File "C:/Users/Administrator/PycharmProjects/Test/venv/TEST.py", line 3, in calculator
    operand1, operator, operand2 = expression.split("+")
ValueError: not enough values to unpack (expected 3, got 2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 17:44:48 | 显示全部楼层
彩笔凡 发表于 2024-05-11 17:44
报错
Traceback (most recent call last):
  File " ...


抱歉,我之前的代码有误。由于使用了字符串的`split()`方法,它期望能够根据分隔符将字符串拆分成指定数量的部分。然而,在用户输入的表达式中,如果没有输入运算符或者输入的运算符个数不正确,就会导致拆分出来的部分数量不足。

为了解决这个问题,可以对拆分的结果进行判断,确保拆分后得到了正确的操作数和运算符。下面是修改后的示例代码:
def calculator(expression):
    # 拆分操作数和运算符
    parts = expression.split("+")
    
    # 确保拆分出了正确的操作数和运算符
    if len(parts) == 2:
        operand1 = parts[0]
        operand2 = parts[1]
        
        # 将操作数转为整数
        operand1 = int(operand1)
        operand2 = int(operand2)
        
        # 根据运算符进行加法计算
        result = operand1 + operand2
        
        return result
    else:
        print("输入的表达式格式有误")
        return None

# 接收用户输入的表达式
expression = input("请输入一个加法表达式(格式为 a+b):")

# 调用计算器函数计算结果
result = calculator(expression)

# 输出计算结果
if result is not None:
    print("计算结果是:", result)

在这段代码中,我们将拆分的结果存储在一个列表`parts`中。然后,通过检查列表长度是否为2来判断是否成功拆分出了正确的操作数和运算符。如果拆分成功,我们可以按照之前的方式进行加法计算;否则,我们输出错误提示信息。

你可以尝试运行这段代码,输入不同的加法表达式进行计算。如果输入的格式不正确,程序会打印错误提示信息。

希望这次能帮助到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-11 17:59:41 | 显示全部楼层
FishC 发表于 2024-5-11 17:44
抱歉,我之前的代码有误。由于使用了字符串的`split()`方法,它期望能够根据分隔符将字符串拆分成指定 ...

10、编写函数实现字符串加密和解密,循环使用指定密钥,采用简单的异或算法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 18:00:12 | 显示全部楼层
彩笔凡 发表于 2024-05-11 17:59
10、编写函数实现字符串加密和解密,循环使用指定密钥 ...


可以使用异或运算符来实现简单的字符串加密和解密功能。异或运算符(^)的特点是当两个操作数相同则结果为0,不同则结果为1。

下面是一个示例代码:

def encrypt_decrypt(text, key):
    encrypted = ""
    for char in text:
        encrypted += chr(ord(char) ^ key)
    return encrypted

# 输入要加密的字符串
text = input("请输入要加密的字符串:")

# 输入密钥
key = int(input("请输入密钥:"))

# 加密字符串
encrypted_text = encrypt_decrypt(text, key)
print("加密后的字符串为:", encrypted_text)

# 解密字符串
decrypted_text = encrypt_decrypt(encrypted_text, key)
print("解密后的字符串为:", decrypted_text)

在这段代码中,我们定义了一个`encrypt_decrypt`函数,接收一个字符串和一个密钥作为参数。在函数内部,我们使用一个循环遍历字符串中的每个字符,并将其与密钥进行异或运算。然后,将异或运算的结果转为字符并拼接到加密后的字符串中。最后,返回加密后的字符串。

在主程序中,我们首先通过`input`函数获取用户要加密的字符串和密钥。然后,调用`encrypt_decrypt`函数进行加密,并将结果打印出来。接着,再次调用`encrypt_decrypt`函数进行解密,并将结果打印出来。

你可以尝试运行这段代码,输入不同的字符串进行加密和解密。注意,由于异或运算具有对称性,所以使用相同的密钥进行两次异或运算可以得到原始的字符串。

希望能帮助到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 22:24:17 | 显示全部楼层
这是你的作业吧?为什么要靠机器人呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-17 15:39:49 | 显示全部楼层
sfqxx 发表于 2024-5-11 22:24
这是你的作业吧?为什么要靠机器人呢?

因为不会啊,老师教的太模糊了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 18:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表