前言:
有疑问的可以相互沟通学习交流!!!!!!!
1.两数之和
a, b = 3.5, 4.0
print(f"{a}+{b}的和是{a+b}")
-------------------------------------
1.元组赋值可以省略括号
2.使用了字符格式化方式f-string
2.数字的阶乘
def func(n):
if n >= 0:
if n in [0, 1]:
return 1
else:
return n*func(n-1)
else:
return None
data = int(input("请输入一个数:"))
print(f"{data}的阶乘是{func(data)}")
-----------------------------------------
1.递归函数,调用自身
2.if..else
3. 统计1-100之和
方法1: 使用while
s = 0
i = 1
while i <= 100:
s += i
i += 1
print(f"1-100相加的和是:{s}")
方法2: 使用内置函数sum
s = sum([i for i in range(101)])
print(f"1-100相加的和是:{s}")
--------------------------------
1.sum(iter[,initial])函数里面的参数是可迭代对象
4.圆的面积
import math
def circle(r):
return round(math.pi*r*r, 2)
print(f"圆的面积是啊:{circle(2)}")
-----------------------------
1.使用math模块的pi属性
2.使用round()函数保留2位小数
5.区间内的所有素数
def is_prime(number):
if number in [1, 2]:
return True
for i in range(2, number):
if number % i == 0:
return False
return True
def print_prime(start, end):
for i in range(start, end+1):
if is_prime(i):
print(f"{i}是素数")
print_prime(11,25)
6.求1**2+2**2+3**2+。。。。+n**2
def func(data):
if data == 1:
return 1
elif data > 1:
return data**2+func(data-1)
else:
return "输入数据有误"
n = int(input("请输入需要求平方的项数:"))
print(func(n))
--------------------------------------
使用递归函数实现
7. 计算列表数字的和
lst = [1,2,3,4,5,6,7]
方法1: 使用sum函数
print(f"列表的和是{sum(lst)}")
方法2: 使用for循环
s = 0
for i in lst:
s += i
print(f"列表的和是{s}")
8.计算数据范围内的偶数
def print_even(start, end):
lst = []
for i in range(start, end+1):
if i % 2 == 0:
lst.append(i)
return lst
print(print_even(1, 50))
--------------------------
使用列表的append方法将符合条件的元素添加进去
9.移除列表内的某些元素
def remove_element(l1, l2):
for i in l2:
if i in l1:
l1.remove(i)
print(f"移除后的列表是:{l1}")
lst1 = [3, 5, 7, 9, 11, 13]
lst2 = [7, 11]
remove_element(lst1, lst2)
--------------------------
使用列表的remove方法删除指定元素
10.对列表内的元素去重
lst = [10, 20, 30, 10, 30, 40, 50]
# 方法1: 使用set集合去重
print(list(set(lst)))
# 方法2: 使用for循环并生成新列表
new_lst = []
for i in lst:
if i not in new_lst:
new_lst.append(i)
print(new_lst)
11.对简单(元素非复合类型)列表排序
lst = [10, 30, 20, 50, 45, 40]
# 方法1:使用列表的内置方法sort()不生成新列表
lst.sort()
print(lst)
# 方法2:使用冒泡排序
for i in range(1, len(lst)):
for j in range(len(lst)-i):
if lst[j] > lst[j+1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
print(lst)
# 方法3:使用内置函数sorted()生成新列表
new_lst = sorted(lst)
print(new_lst)
12.对复合数据实现排序(按照学生成绩升序排序)
students = [
{"sno": 1001, "sname": "小张", "sgrade": 88},
{"sno": 1002, "sname": "小李", "sgrade": 98},
{"sno": 1003, "sname": "小王", "sgrade": 78},
{"sno": 1004, "sname": "小何", "sgrade": 66},
]
new_lst = sorted(students, key=lambda x: x["sgrade"])
print(f"按照学生成绩升序排序后的列表是:\n{new_lst}")
---------------------------------------
1.使用高阶函数sorted,其中key是可以自定义排序规则。
13.读取文件数据并按照第三列降序排序
grade中的内容如下:
101,小王,88
102,小张,58
103,小李,56
104,小刘,98
105,小何,78
with open('grade') as f:
new_i = [i.strip().split(',') for i in f.readlines()]
n = sorted(new_i, key=lambda x: x[2],reverse=True)
print(n)
---------------------
1.使用上下文管理读取文件grade
2.readlines方法读取文件所有内容并自动换行
3.使用字符串内置函数strip去除空白字符串即换行符
4.使用split函数按照逗号将每行数据分隔
5.使用sorted的参数reverse=True进行降序排序
14.读取文件数据并求最大值,最小值和平均值
grade文件中的内容如下:
101,小王,88
102,小张,58
103,小李,56
104,小刘,98
105,小何,78
with open('grade') as f:
new_i = [i.strip().split(',') for i in f.readlines()]
data_max = max(new_i, key=lambda x: x[2])
data_min = min(new_i, key=lambda x: x[2])
data_average = sum([int(i[2]) for i in new_i])/len(new_i)
print(f"学生成绩最大值是:{data_max[2]},最小值是:{data_min[2]},平均成绩是:{data_average}")
-----------------------------
1.使用max,min函数中的参数key进行自定义排序
2.sum函数中计算成绩和,len函数求取文件中记录行数