python切片练习回文字符串练习题
时间: 2023-11-20 10:57:19 浏览: 185
以下是一个使用Python切片实现回文字符串判断的例子:
```python
def is_palindrome(s):
# 将字符串转换为小写并去除空格
s = s.lower().replace(' ', '')
# 判断字符串是否与其反转后的字符串相同
return s == s[::-1]
# 测试
print(is_palindrome('A man a plan a canal Panama')) # 输出:True
print(is_palindrome('hello world')) # 输出:False
```
相关问题
python学习笔记|字符串与正则表达式练习题答案
### 回答1:
Python学习笔记|字符串与正则表达式练习题答案
1. 练习题1:
题目:给定一个字符串s,找出其中的连续的最长的数字串。
答案:可以通过正则表达式来匹配数字串,然后使用max函数找出最长的。
代码示例:
import re
def find_longest_num_str(s):
num_str_list = re.findall('\d+', s)
longest_str = max(num_str_list, key=len)
return longest_str
s = "ab1234c56789def"
print(find_longest_num_str(s))
输出:56789
2. 练习题2:
题目:给定一个字符串s,将其中的每个空格替换为"%20"。
答案:可以通过正则表达式的sub函数来实现替换。
代码示例:
import re
def replace_space(s):
new_s = re.sub(' ', '%20', s)
return new_s
s = "Hello World"
print(replace_space(s))
输出:Hello%20World
3. 练习题3:
题目:给定一个字符串s,判断它是否为回文字符串。
答案:可以使用切片操作将字符串反转,然后与原字符串进行比较。
代码示例:
def is_palindrome(s):
return s == s[::-1]
s = "abcba"
print(is_palindrome(s))
输出:True
### 回答2:
以下是关于字符串和正则表达式练习题的答案:
1. 给定一个字符串s,编写一个函数,返回该字符串的反转字符串。
def reverse_string(s):
return s[::-1]
2. 给定一个字符串s,编写一个函数,返回是否是回文字符串。
def is_palindrome(s):
return s == s[::-1]
3. 给定一个字符串s和一个字符c,编写一个函数,返回字符串s中字符c的出现次数。
def count_char(s, c):
return s.count(c)
4. 给定一个字符串s,编写一个函数,返回字符串s中的所有单词列表。
def split_words(s):
return s.split()
5. 给定一个字符串s,编写一个函数,返回字符串s中的所有数字列表。
import re
def extract_numbers(s):
return re.findall(r'\d+', s)
这只是一些可能的答案,其中的解决方法可以有很多种。每个问题都有不同的解决方案,具体取决于个人的编程风格和需求。希望这些答案能够帮助你理解和学习Python中的字符串和正则表达式。
python练习题带解析
以下是一些Python练习题以及对它们的解析。
1. 编写一个程序,将两个整数相加并输出结果。
解析:这是一个非常简单的程序,只需要使用加法运算符即可。
```python
a = 5
b = 10
print(a + b)
```
2. 编写一个程序,从用户那里获得一个字符串并输出它的长度。
解析:使用Python内置函数`len()`可以轻松地获得一个字符串的长度。
```python
string = input("Enter a string: ")
print(len(string))
```
3. 编写一个程序,输出从1到100的所有偶数。
解析:使用`for`循环迭代1到100的所有数字,然后检查每个数字是否为偶数。
```python
for i in range(1, 101):
if i % 2 == 0:
print(i)
```
4. 编写一个程序,从用户那里获得一个数字并判断它是奇数还是偶数。
解析:使用`input()`函数获得用户输入的数字,然后使用`%`运算符检查它是否为偶数。
```python
num = int(input("Enter a number: "))
if num % 2 == 0:
print(num, "is even")
else:
print(num, "is odd")
```
5. 编写一个程序,从用户那里获得一个字符串并反转它。
解析:使用字符串切片可以轻松地实现字符串的反转。
```python
string = input("Enter a string: ")
print(string[::-1])
```
6. 编写一个程序,输出从1到100的所有质数。
解析:使用`for`循环迭代1到100的所有数字,然后检查每个数字是否为质数。一个数字是质数当且仅当它只能被1和它本身整除。
```python
for i in range(2, 101):
is_prime = True
for j in range(2, i):
if i % j == 0:
is_prime = False
break
if is_prime:
print(i)
```
7. 编写一个程序,从用户那里获得一个字符串并检查它是否是回文字符串。
解析:使用字符串切片可以轻松地实现回文字符串的检查。
```python
string = input("Enter a string: ")
if string == string[::-1]:
print("Palindrome")
else:
print("Not a Palindrome")
```
8. 编写一个程序,从用户那里获得一个字符串并计算其中所有字母的出现次数。
解析:使用Python内置函数`count()`可以轻松地计算一个字符串中某个字符的出现次数。
```python
string = input("Enter a string: ")
for char in string:
count = string.count(char)
print(char, count)
```
9. 编写一个程序,输出斐波那契数列的前100个数。
解析:斐波那契数列是一个由前两个数字相加而得出的数列。使用`for`循环和递归函数可以轻松地生成斐波那契数列。
```python
# 使用递归函数
def fibonacci(n):
if n <= 1:
return n
else:
return (fibonacci(n-1) + fibonacci(n-2))
for i in range(100):
print(fibonacci(i))
# 使用for循环
a, b = 0, 1
for i in range(100):
print(a)
a, b = b, a + b
```
10. 编写一个程序,输出所有的阿姆斯特朗数,即一个n位数等于其各个数字的n次方之和。
解析:使用循环和条件语句检查每个数字是否为阿姆斯特朗数。
```python
for num in range(1, 100000):
order = len(str(num))
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** order
temp //= 10
if num == sum:
print(num)
```
阅读全文