1.用while循环,计算1-10 的偶数和
i = 1
summ = 0
while i < 11:
if i % 2 == 0:
summ += i
i += 1
print(summ) # 输出:30
2.用for循环求1-10的偶数和
summm = 0
for j in range(11):
if j % 2 == 0:
summm += j
print(summm) # 输出:30
3.计算1-10的和 但是从1循环到100
k = 1
summ2 = 0
while k < 100:
if k > 10:
break
summ2 += k
k += 1
print(summ2) # 输出:55
4.计算1-100的和 但是从1循环到100 但是10的倍数不加
n = 1
summm = 0
while n < 100:
n += 1
if n % 10 == 0:
continue
summm += n
# n += 1 在这个位置时是死循环 在while if continue之间反复横跳
print(summm) # 输出:4499
5.计算1~100中奇数的和
n = 1
he = 0
while n < 100:
he += n
n += 2
print(he) # 输出:2500
6.计算1~10中偶数的乘积
n = 1
cj = 1
while n < 11:
if n % 2 == 0:
cj *= n
n += 1
print(cj)
7.计算圆的面积
def circle_area:
S = PI * r * r
# 不写return 则返回一个None 写多个则以元组的形式返回
return S, r
if __name__ == '__main__':
# 计算⚪的面积
S1, r = circle_area(2)
print(S1, r) # 输出:12.56 2
print(S1) # 输出:12.56
8.生成99乘法表
# 用for循环写
nine = []
for i in range(1, 10):
num = []
for j in range(1, i + 1):
num.append(f"{j} * {i} = {j * i}")
nine.append(num)
print(nine)
# 用列表生成式写
ninenine = "\n".join(["\t".join([f"{j} * {i} = {i * j}" for j in range(1, i + 1)]) for i in range(1, 10)])
print(ninenine)
# "\n".join() 是一个字符串方法,用于将序列(如列表、元组等)中的元素以指定的分隔符(在这个例子中是换行符 \n)连接成一个新的字符串。这个方法要求序列中的所有元素都必须是字符串
9.冒泡排序
num = [1, 3, 4, 2, 5, 8, 6, 7]
for j in range(len(num)): # 0-6
flag = True # 标志位
for i in range(len(num) - 1 - j):
if num[i] > num[i + 1]:
flag = False
num[i], num[i + 1] = num[i + 1], num[i]
if flag:
break
print(num) # 输出:[1, 2, 3, 4, 5, 6, 7, 8]
10.快排
# 快排
# 首先选定一个基准值 然后大的放基准值的右边 小的放基准值的左边
# li = [34, 5, 6, 23, 56, 42]
# [5,6] 23 [34,56,42]
# [5] 6 [] 23 [34,42] 56 []
# [5] 6 [] 23 [34] 42 [] 56 []
def quick_sort(li):
# 出口
if len(li) == 1 or len(li) == 0:
return li
# 二分法 大的放右边 小的放左边
mid = li[len(li) // 2]
left = []
right = []
li.remove(mid)
for i in li:
if i > mid:
right.append(i)
else:
left.append(i)
# 左右和右边的列表需要做同样的事情
return quick_sort(left) + [mid] + quick_sort(right)
if __name__ == '__main__':
print(quick_sort([34, 5, 6, 23, 56, 42, 342, 12, 35, 3, 4513, 431]))
# 输出:[3, 5, 6, 12, 23, 34, 35, 42, 56, 342, 431, 4513]
11.阶乘 1-10
def jiecheng(n):
if n == 1:
return 1
return n * jiecheng(n-1)
if __name__ == '__main__':
print(jiecheng(10)) # 输出:3628800
12.定义一个函数fib,能够指定数量n,生成著名的斐波拉契数列(Fibonacci)
# 1, 1, 2, 3, 5, 8, 13, 21, 34, ... 除第一、二个数之外,后一个数等于前两个数之和
def fib(n):
# 出口
if n == 1 or n == 2:
return 1
# 自己调用自己
return fib(n-1) + fib(n-2)
if __name__ == '__main__':
# for 循环方法
li = [1, 1]
for i in range(2, 11):
li.append(li[i - 1] + li[i - 2])
print(li) # 输出:[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
# 调用函数的方法
print(fib(10)) # 输出第十个数
# 输出:55