python 编程题
Python是一种高级、通用的动态编程语言,它被用于开发各种应用程序,包括网站、桌面应用程序、科学计算、数据分析和人工智能等。它具有简单易学、开发效率高、跨平台等特点,深受开发者的喜爱。
本文将介绍几个常见的Python编程题,包括判断素数、排序算法和字符串处理等。
1. 判断素数
素数是指只能被1和自身整除的正整数,例如2、3、5、7等。判断一个数是不是素数可以采用暴力枚举法,即从2到n-1枚举每个数,看是否能整除n。时间复杂度为O(n)。更好的做法是只需要枚举到sqrt(n),因为如果n有一个大于sqrt(n)的因子,那么肯定也有一个小于sqrt(n)的因子,因此枚举到sqrt(n)即可。时间复杂度为O(sqrt(n))。
以下是一个判断素数的Python程序:
```python
import math
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n))+1):
if n % i == 0:
return False
return True
```
该函数使用import语句导入了Python的math库,使用了math.sqrt(n)函数计算n的平方根。其中,range(2, int(math.sqrt(n))+1)会生成一个从2到sqrt(n)的整数序列,用于枚举因子。如果
n能被其中的一个数整除,则不是素数,返回False;否则,返回True。
2. 排序算法
排序是计算机科学中的一个基本问题,它是将一组无序数据按照一定的规则进行排列的过程。常用的排序算法包括冒泡排序、选择排序、插入排序、归并排序和快速排序等。其中,快速排序是应用最广泛的一种排序算法。
以下是一个快速排序的Python程序:
```python
def quick_sort(a):
if len(a) <= 1:
return a
pivot = a[0]
字符串函数编程题
left, right, middle = [], [], [pivot]
for i in range(1, len(a)):
if a[i] < pivot:
left.append(a[i])
elif a[i] > pivot:
right.append(a[i])
else:
middle.append(a[i])
return quick_sort(left) + middle + quick_sort(right)
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(quick_sort(a)) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
```
该函数使用递归实现了快速排序算法。首先在输入列表中选择一个基准值(pivot),然后将列表中小于基准值的元素放入一个列表(left),大于基准值的元素放入另一个列表(right),等于基准值的元素放入一个列表(middle)。然后,对left和right分别递归调用quick_sort函数,最后将left、middle和right按照顺序拼接起来返回即可。
3. 字符串处理
字符串是Python中最基本的数据类型之一,它是由一组字符组成的不可变序列。字符串处理是许多应用程序中普遍使用的一个问题,包括字符串查、替换、拼接等等。
以下是一个字符串查并替换的Python程序:
```python
def replace_string(source_string, old_substring, new_substring):
if old_substring not in source_string:
return source_string
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论