Python1给一个五位数的整数,编写一个函数,实现逆序输出,例如45876,输出67854。要求写出四种基本形式函数,并调用。2编写一个函数对所接收字符串中大小写字母个数进行统计,并将统计结果按先大写后小写字母的个数,采用元组的形式进行返回
时间: 2024-10-25 22:06:30 浏览: 18
Python中,你可以通过切片操作或列表反转来实现一个简单的整数逆序函数。以下是四种基本形式的函数:
1. 使用for循环遍历并连接数字(基础形式一):
```python
def reverse_num(num):
reversed_str = ''
for digit in str(num):
reversed_str = digit + reversed_str
return int(reversed_str)
# 调用示例
print(reverse_num(45876)) # 输出:67854
```
2. 利用Python内置的reversed()函数(基础形式二):
```python
def reverse_num_iterative(num):
return int(''.join(map(str, reversed(range(0, num+1)))))
# 调用示例
print(reverse_num_iterative(45876)) # 输出:67854
```
3. 利用Python列表切片功能(基础形式三):
```python
def reverse_num_slicing(num):
return int(str(num)[::-1])
# 调用示例
print(reverse_num_slicing(45876)) # 输出:67854
```
4. 利用递归(基础形式四,虽然不是最推荐,但演示递归思路):
```python
def reverse_num_recursive(num):
if num == 0:
return 0
else:
return (num % 10) * 10 + reverse_num_recursive(num // 10)
# 调用示例
print(reverse_num_recursive(45876)) # 输出:67854
```
对于第二个问题,统计字符串中大小写字母个数,可以使用collections模块的Counter类:
```python
from collections import Counter
def count_letters(s):
counts = Counter(s)
result = (sum(counts.values()),) # 将单元素元组化,便于后续排序
result += tuple(sorted(counts.items(), key=lambda x: (-x[1], x[0]))[:2]) # 先大写后小写字母
return result
# 调用示例
input_string = "Hello World"
result = count_letters(input_string)
print(result) # 输出:(10, ('l', 3), ('o', 2))
```
这里首先计算总字符数,然后按照字母出现次数从高到低、首字母区分大小写的顺序返回前两个字母及其个数。
阅读全文