目录
1.在输入的区间判断有哪些是素数;
1)解决思路;
(1).先构造一个输入一个区间的表达式;
(2).然后定义一个函数,将每个区间内的每个数字遍历;
(3).将遍历到的数字进行判断,即定义一个判断是素数的函数。
##输入begin到end区间的数,判断哪一个是素数
begin,end=map(int,input().split())
##判断该数是否是素数
def is_prime(number):
if number==1:
return False
if number==2:
return True
else:
for i in range(2 ,number):
if number%i==0:
return False
return True
##将每个数遍历
def prime(begin,end):
for number in range(begin,end+1):
if is_prime(number):
print("有素数{}".format(number))
prime(begin,end)
2)输入一个例子
(1).以输入“1 10”为例
(2).输出结果为:
2. 用Python计算数字列表的和
1)、解决思路:
灵活利用Python语言的特点,列表有“sum()”功能,map()它接收一个函数 f (int()函数将字符串转化为整形数字)和一个 可迭代对象(input().split()将输入的字符串用空格分开,从而形成单独的字符)
因此代码可以用一句表达式实现:
sum(list(map(int,input().split())))
3.去除列表中重复的元素
1)基本思想
首先就是再定义一个函数,将本来的每个数组遍历,然后依次将每个元素(不在result中的)存入result列表中。
排序的对象为字典,但是我们排序要按照成绩(“grade”)进行排序,主要用lambda()函数和sorted()函数,
sorted 语法:
sorted(iterable, cmp=None, key=None, reverse=False)
iterable -- 可迭代对象。
cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
2)代码实现
a=[1,33,33,44,6]
def pop_elments(a):
result=[]
for item in a:
if item not in result:
result.append(item)
return result
print("去掉重复的元素之后就是{}".format(pop_elments(a)))
4.对成绩排序
def Resorted_students(students):
result=sorted(students,key=lambda x:x["grade"],reverse=True)
return result
students=[{"num":101,"name":"xiaozhang","grade":3},
{"num":102,"name":"xiaozhang","grade":5},
{"num": 103, "name": "xiaozhang", "grade": 2},
{"num": 104, "name": "xiaozhang", "grade": 4}
]
print("排序之前数据{},排序之后的数据{}".format(students,Resorted_students(students)))
排完顺序后的结果为:
排序之前数据[{'num': 101, 'name': 'xiaozhang', 'grade': 3}, {'num': 102, 'name': 'xiaozhang', 'grade': 5}, {'num': 103, 'name': 'xiaozhang', 'grade': 2}, {'num': 104, 'name': 'xiaozhang', 'grade': 4}],
排序之后的数据[{'num': 102, 'name': 'xiaozhang', 'grade': 5}, {'num': 104, 'name': 'xiaozhang', 'grade': 4}, {'num': 101, 'name': 'xiaozhang', 'grade': 3}, {'num': 103, 'name': 'xiaozhang', 'grade': 2}]
5.Python读取成绩文件排序
1)解决思路:
先读入数据
再对数据排序
最后将新的顺序写入新的文件
2)解决顺序
step 1:在pycharm中创建test.py文件,
step 2:在pycharm中创建students_grade.txt,里面放一些学生的数据
3)代码实现过程:
def Read_file():
result = []
with open("./students_grade.txt") as fin:
for line in fin:
line=line[:-1]#将每行的数据的末尾换行符去掉
result.append(line.split(","))##需要将每一行的数据加入列表并且去掉“,”
return result
def Soreted(datas):
return sorted(datas,key=lambda x:int(x[2]),reverse=True)##在这里需要将字符转化为数字
def Write_file(datas):
with open("sorted_students","w") as fout:
for data in datas:
fout.write(",".join(data)+"\n")
#读入文件
datas=Read_file()
print("读入文件后的数据为:",datas)
#对数据进行排序
datas=Soreted(datas)
print("读入的数据为:",datas)
#写入数据
Write_file(datas)
运行结果为:
读入文件后的数据为: [['001', 'xaioming', '980'], ['002', 'xiaoqian', '982'], ['003', 'xiaolong', '981'], ['004', 'xaiodong', '987']]
读入的数据为: [['004', 'xaiodong', '987'], ['002', 'xiaoqian', '982'], ['003', 'xiaolong', '981'], ['001', 'xaioming', '980']]