1、实现计算求最大公约数和最小公倍数的函数
def gcd(x, y):
(x, y) = (y, x) if x > y else (x, y)
for factor in range(x, 0, -1):
if x % factor == 0 and y % factor == 0:
return factor
def lcm(x, y):
return x * y // gcd(x, y)
2、实现判断一个数是不是回文数的函数
a = 1234567
a_st = str(a)
print(a_st[::-1])
3、字符串操作
# 将字符串以指定的宽度居中并在两侧填充指定的字符
print(str1.center(50, '*'))
# 将字符串以指定的宽度靠右放置左侧填充指定的字符
print(str1.rjust(50, ' '))
******************hello, world!*******************
hello, world!
str2 = 'abc123456'
# 检查字符串是否由数字构成
print(str2.isdigit()) # False
# 检查字符串是否以字母构成
print(str2.isalpha()) # False
# 检查字符串是否以数字和字母构成
print(str2.isalnum()) # True
# 获得字符串修剪左右两侧空格的拷贝
print(str3.strip())
4、数组操作
list2 = ['hello'] * 5
print(list2) # ['hello', 'hello', 'hello', 'hello', 'hello']
list1 = [1, 3, 5, 7, 100]
# 添加元素
list1.append(23)
# 根据位置删除元素
del list1[1]
# 根据值删除元素
list1.remove(100)
# 根据位置修改元素
list1.insert(1, 400)
list1[1] = 200
# 判断是否在列表中
print(200 in list1)
5、打印
# 打印结果输出到文件中
print('123', '456', sep='|',end=' ', file=open('sys.txt', 'w'))
6、数组排序
def main():
list1 = ['orange', 'apple', 'zoo', 'internationalization', 'blueberry']
list2 = sorted(list1)
# sorted函数返回列表排序后的拷贝不会修改传入的列表
# 函数的设计就应该像sorted函数一样尽可能不产生副作用
list3 = sorted(list1, reverse=True)
# 通过key关键字参数指定根据字符串长度进行排序而不是默认的字母表顺序
list4 = sorted(list1, key=len)
print(list1)
print(list2)
print(list3)
print(list4)
# 给列表对象发出排序消息直接在列表对象上进行排序
list1.sort(reverse=True)
print(list1)
if __name__ == '__main__':
main()
# 结果
['orange', 'apple', 'zoo', 'internationalization', 'blueberry']
['apple', 'blueberry', 'internationalization', 'orange', 'zoo']
['zoo', 'orange', 'internationalization', 'blueberry', 'apple']
['zoo', 'apple', 'orange', 'blueberry', 'internationalization']
['zoo', 'orange', 'internationalization', 'blueberry', 'apple']
6、设计一个函数返回给定文件名的后缀名
def get_suffix(filename, has_dot=False):
"""
获取文件名的后缀名
:param filename: 文件名
:param has_dot: 返回的后缀名是否需要带点
:return: 文件的后缀名
"""
pos = filename.rfind('.')
if 0 < pos < len(filename) - 1:
index = pos if has_dot else pos + 1
return filename[index:]
else:
return ''
7、杨辉三角
def main():
num = int(input('Number of rows: '))
yh = [[]] * num
for row in range(len(yh)):
yh[row] = [None] * (row + 1)
for col in range(len(yh[row])):
if col == 0 or col == row:
yh[row][col] = 1
else:
yh[row][col] = yh[row - 1][col] + yh[row - 1][col - 1]
print(yh[row][col], end='\t')
print()
if __name__ == '__main__':
main()