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()