学习Python必刷的100道经典练习题,没练等于白学
习题一:
打印两数之和:
num1 = 45
num2 = 2
sum = num1 + num2
print(f"{num1}+{num2}={sum}"
习题二:
数字的阶乘:比如6的阶乘:6x5x4x3x2x1,3的阶乘3x2x1
def jiecheng(number):
result = 1
while number>1:
result *= number
number -= 1
return result
print('jiecheng 6 =',jiecheng(6))
print('jiecheng 3 =',jiecheng(3))
print('jiecheng 100 =',jiecheng(100))
习题三:
算圆的面积:
import math
def compute_area_of_circle(r):
return round(math.pi * r * r,2)
print("area of 2 is:",compute_area_of_circle(2))
习题四;
区间内的所有素数:输入开始和结束数字,打印区间内所有素数,比如,输入11和25,打印11-25直接所有素数,包括25.
素数,如果数字只能被1和自己整除就是素数,否则不是素数,比如3室素数,4不是。
def panduan(number):
'''判断一个数是否为素数'''
if number in [1,2]:
return True
for i in range(2,number):
if number % i == 0:
return False
return True
def sushu(begin,end):
'''获取一个区间数据'''
for number in range(begin,end + 1):
if panduan(number):
print(f"{number} is a prime")
sushu(11,25)
习题五:
求前N个数字的平方和,比如5的平方和,1的平方+2的平方+3的平方+4的平方+5的平方
方法一:
def pingfang(number):
result = 0
while number >= 1:
result += number * number
number -= 1
return result
print(pingfang(5))
方法二:
def pingfang(number):
result = 0
for i in range(1,number + 1):
result += i * i
return result
print(pingfang(5))
习题六:
计算列表数字的和,比如input列表[1,2,3,4]说是列表[17,5,3,5]
方法一:
def list_sum(list_name):
sum = 0
for i in range(len(list_name)):
sum += list_name[i]
return sum
list1 = [1,2,3,4]
list2 = [17,5,3,5]
print("list1 sum is:",list_sum(list1))
print("list2 sum is:",list_sum(list2))
方法二:
def list_sum(list_name):
sum = 0
for i in list_name:
sum += i
return sum
list1 = [1,2,3,4]
list2 = [17,5,3,5]
print("list1 sum is:",list_sum(list1))
print("list2 sum is:",list_sum(list2))
习题七:
计算数字范围内所有偶数
输入开始和结束值,不包含结束值,得到所有偶数,偶数,能被数字2整除的整数,是2的倍数,
比如4-15直接的偶数
方法一
def calc_integer(begin,end):
result = []
for i in range(begin,end):
if i % 2 == 0:
result.append(i)
return result
print(calc_integer(4,15))
方法二,采用列表推导式
begin = 4 end = 15 date = [result for result in range(begin,end) if result % 2 ==0] print(date)
习题八:
移除列表中多个元素,比如
输入原始列表:[3,5,7,9,11,13]
移除原始:[7,11]
返回:[3,5,9,13]
def remove_list(lista,listb):
for i in listb:
if i in lista:
lista.remove(i)
else:
pass
print(lista)
list1 = [3,5,7,9,11,13]
list2 = [7,11,15]
remove_list(list1,list2)
习题九:
对列表元素进行去重,
输入,包含重复元素的原始列表:[10,20,30,10,20]
返回:[10,20,30]
方法一:
def update_list(list_name):
update_list = []
for i in list_name:
if i not in update_list:
update_list.append(i)
return update_list
list1 = [10,20,30,10,20]
print(f"yuanshi list is {list1},update list is ",update_list(list1))
方法二:
list1 = [10,20,30,10,20]
print(f"yuanshi list is {list1},update list is ",list(set(list1)))
习题十:
怎样对简单列表元素排序:
怎样对简单列表排序?
简单列表:元素类型不是复合类型(列表、元素、字典)
形式1:[20,50,10,40,30]
形式2:['bb','ee','aa','dd','cc']
知识点:
怎样原地排序?怎样不改变原列表排序?
怎样指定是升序还是降序排序?
list1 = [20,50,10,40,30]
#这种情况对list1内存进行了改变,
list1.sort()
print(f"list1 is {list1}")
不改变原始列表
list1 = [20,50,10,40,30]
#增加reverse参数,是将数据进行降序
list2 = sorted(list1,reverse=True)
print(f"list1 is {list1}")
print(f"list2 is {list2}")
习题十一
怎样实现学生成绩排序
学生成绩数据格式:复杂列表,元素是字典或是元组:
{'sno':101,'sname':"小张",'sgrade':88},
{'sno':102,'sname':"小王",'sgrade':77},
{'sno':103,'sname':"小李",'sgrade':99},
{'sno':104,'sname':"小赵",'sgrade':66}
students = [
{'sno':101,'sname':"小张",'sgrade':88},
{'sno':102,'sname':"小王",'sgrade':77},
{'sno':103,'sname':"小李",'sgrade':99},
{'sno':104,'sname':"小赵",'sgrade':66}
]
students_sort = sorted(students,key=lambda x:x['sgrade'])
print(students)
print(students_sort)
习题十二:
读取成绩文件排序数据
输入文件:
三列:学号、姓名、成绩
列之间用逗号分隔,比如“101,小张,88”
行之间用\n换行分割
处理:
读取文件,按成绩倒序排列
输出:
排序后的三列数据