![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python 练习
up中的小猿类
这个作者很懒,什么都没留下…
展开
-
利用Python将csv文件按照某列分成小csv
需求:网上下载的csv文件,包含的几十万的数据,想要根据MMSI的值分为不同的csv文件主要步骤:read_csv:读取存放所有数据的csv文件drop_duplicates:去掉重复的数据(默认为所有特征值匹配才相同)groupby:按照MMSI特征值进行分组对分组后的数据逐行进行写入遇到的主要问题:分组后的每一组数据,如何写入不同的csv文件中。解决使用的是to_csv写...原创 2019-03-05 21:56:20 · 8495 阅读 · 14 评论 -
1054. 求平均值 (20)——Python
这个题开始提交的时候测试点2显示错误,是因为这个测试的是当正确的数字只有一个时的情况,我在题目中读到然后自己理解的是直接输出原数,不需要进行两位的输出,但是显示错误,而在改为了输出两位小数后就通过了。只能说是理解力不行。#判断数据是否合法def have_judge(my_num): try: my_num = float(my_num) if my_num >= -1000.0原创 2017-12-17 15:39:04 · 708 阅读 · 0 评论 -
1047. 编程团体赛(20)--Python
num = input()num = int(num)list_no = []dir_no = {}#将各队的成绩进行累加for i in range(num): mem, grade = input().split() grade = int(grade) team_no, per_no = mem.split('-') if team_no in list_no: di原创 2017-11-28 14:28:06 · 590 阅读 · 0 评论 -
1046. 划拳(15)--Python
num = input()num = int(num)count_jia, count_yi = 0, 0#统计划拳的情况for i in range(num): say_jia, do_jia, say_yi, do_yi = input().split() say_jia, do_jia, say_yi, do_yi = int(say_jia), int(do_jia), in原创 2017-11-28 14:11:56 · 266 阅读 · 0 评论 -
1044. 火星数字(20)--Python
开始的时候测试点2与4显示答案错误,后来在查阅资料的时候,突然想到是有个情况没有考虑到,就是在从地球文转换为火星文时,对于例如13的地球文,在转换为火星文时,应该只输出进位就可以了,不需要把个位的0对用的火星文显示出来,在改了这个问题后,就全部通过了。这个题目并不难,主要是把这种情况都考虑清楚。# 得到地球文到火星文的转换def get_Mars(my_num, fir_list, la原创 2017-11-27 11:06:56 · 459 阅读 · 0 评论 -
1043. 输出PATest(20)--Python
string = input()dir = {}string_1 = 'P A T e s t'list_1 = string_1.split()dir['P'], dir['A'], dir['T'], dir['e'], dir['s'], dir['t'] = 0, 0, 0, 0, 0, 0# 将PATest放在字典中for num in string: if num in原创 2017-11-27 09:31:06 · 309 阅读 · 0 评论 -
1042. 字符统计(20)--Python
string = input()string = string.lower()list = []dir = {}# 将所有的字母全部保存到list中,然后以字母为键值,统计的次数为值保存到字典中for num in string: if (num >= 'a' and num = 'A' and num <= 'Z'): if num in list: dir[num] +原创 2017-11-27 08:20:28 · 309 阅读 · 0 评论 -
1058. 选择题(20)--Python
见过坑的,没见过这么坑的,题目中明明写着行首尾不能有空格,使用了字符串整个的输出错题的序号,测试点1就是过不了,说是返回非零,后来干脆不考虑最后一个输出的错误题号,过了。num_N, num_M = input().split()num_N, num_M = int(num_N), int(num_M)value_list, error_list, answer_list = [], [原创 2017-12-05 16:18:35 · 760 阅读 · 0 评论 -
1057. 数零壹(20)--Python
string = input()string = string.lower()sum = 0num_0, num_1 = 0, 0num_value = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7,'h':8,'i':9,'j':10,'k':11,'l':12,'m':13,'n':14,'o':15,'p':16,'q':17,'r':18,'原创 2017-12-05 14:49:33 · 428 阅读 · 0 评论 -
1041. 考试座位号(15)--Python
num = input()num = int(num)direct = {}# 使用字典存储,键为测试机号,值直接是对应的准考证号 + 考试机号for i in range(num): adm_no, try_num, test_num = input().split() direct[try_num] = adm_no + ' ' + test_numnum_1 = input原创 2017-11-25 19:23:58 · 465 阅读 · 0 评论 -
1067. 试密码(20)——Python
这道题最重要的是要理解题目的意思,编程没有什么大的难度,理解在输入密码错误时,先输出提示密码错误,然后判断一下如果目前为止已经输入三次,则再输出密码被锁定的消息,测试点一直没过就是因为在判定输入错误的次数时,是使用的大于规定的次数,应该使用的是与输入规定次数相等时就应该提示密码被锁定了。而边输入边判断与全部输入再判断都可以。string = input().split()password =原创 2018-01-01 20:33:56 · 408 阅读 · 0 评论 -
1069. 微博转发抽奖(20)——Python
测试点4测试的是已经获奖的情况下要顺延一个,直到找的没有获奖的,这个地方一直处理的不好,所以测试点4试了好几次才过,别的都很简单,没有什么大的难处。string = input().split()total_num, per_num, fir_num = int(string[0]), int(string[1]), int(string[2])#print(fir_num)list_n原创 2018-01-02 10:46:59 · 917 阅读 · 1 评论 -
1060. 爱丁顿数(25)——Python
非常非常那啥的一道题目,逻辑很简单,就是先把骑车的里程从大到小排序,然后把每天骑车的里程与天数对比,坑就在对比上,第一次提交的时候好几个点没通过,是题目理解的问题,就是要满足的条件是:举个例子就是在第二天骑行的里程要大于2,是大于,而不是大于等于,我之前就死在了大于等于,改了后就通过了。num = input()num = int(num)string = input().split()原创 2017-12-29 16:35:37 · 293 阅读 · 0 评论 -
1079. 延迟的回文数 (20)——Python
Easy,判断回文时,将列表翻转,翻转后与原先的相等则说明是回文,麻烦点就在于类型的转换。def judge_palindrome(my_number): #判断是否为回文 list_number = list(my_number) list_number.reverse() if list_number == list(my_number): #print("OK") retur...原创 2018-03-12 21:27:15 · 285 阅读 · 0 评论 -
利用Python在PI中寻找生日
(1)使用y-cruncher工具得待PI的亿万位的txt文档;cruncher下载(2)代码很简单,首先是得到可操作的文档,然后提示用户输入要查找的生日,默认的格式是year-mouth-day,例如94-01-01,先检查输入的生日格式是否正确,要是正确的话就从文档中进行查找,若查找到就返回其存在的个数,从查找的结果来看,本人的生日出现的次数还是挺多的,但是要是查找的8位的生日,就没有那么幸运...原创 2018-03-15 20:06:14 · 4663 阅读 · 0 评论 -
1073. 多选题常见计分法(20)——python
刚开始写的那个逻辑有点混乱,只通过了三个测试点,所以今天索性又重新写了一个,这次更加的注重逻辑的实现,主要的就是使用了两个字典,一个是dir_count_wrong,用来保存每个题错误选项的次数,还有一个就是dir_list_wrong,是用来保存每个题的错误选项。(1)首先是对正确选项以及同学的答案进行处理,放到字典中;(2)对每一个同学的选择题进行分析,分为三种情况,全对,部分对以及答案错误,...原创 2018-03-08 16:11:38 · 1676 阅读 · 0 评论 -
1071. 小赌怡情(15)——Python
注意的地方有两点:(1)就是格式问题,标点符号要看清楚,然后就是在一行中的两句话之间的空格是两个,而不是一个;(2)就是在剩余的total一旦为0时,就立即的退出游戏,因此可以在用户输的时候再判断是否还有货币,若是没有的话,直接退出,而不是在下一轮开始的时候再判断。我刚开始的时候是在一开始判断的,但是测试点4过不去说返回非零,所以这个要注意。string_1 = input().spl原创 2018-01-10 15:24:01 · 478 阅读 · 0 评论 -
1077. 互评成绩计算 (20)
def judge(string_2, perfect_scores): #计算每组的得分 string = string_2[1:] list_scores = [] sum = 0 for num in string: if int(num) >= 0 and int(num) <= int(perfect_scores): list_scores.append(int(n原创 2018-01-16 10:27:00 · 302 阅读 · 0 评论 -
1062. 最简分数(20)——Python
测试点1测试的是,输入的初始的两个值是没有大小的先后顺序的,开始的时候我是把两个值默认是先输入的是大的;测试点2测试的是,输出的应是两数之间的数,不能包括两个数,就算在编程时自己知道这个规则,但是实现的程序可能就没有按照自己想的那样跑,所以自己可以验证下;测试点4测试的是,输出的格式是否正确,就是中间有空格,但是开始跟结束的时候不能有空格。#欧几里得算法求最大公约数def get_g原创 2017-12-30 11:28:46 · 695 阅读 · 0 评论 -
1076. Wifi密码 (15)——Python
def judge(string): #判断那个正确 for my_string in string: if my_string[-1] == 'T': return my_string[0]if __name__ == '__main__': dir_scores = {'A':'1', 'B':'2', 'C':'3', 'D':'4'} num = int(input(原创 2018-01-15 11:08:03 · 335 阅读 · 0 评论 -
1072. 开学寄语(20)——Python
def judge(string_2, list_things, count_things): #判断是否有违禁物品 my_list = [] for thing in list_things: if thing in string_2: count_things += 1 my_list.append(thing) #print(thing) return my_l原创 2018-01-14 19:15:13 · 621 阅读 · 0 评论 -
1040. 有几个PAT(25)--Python
开始的时候最后三个测试点一直超时,然后借鉴了网上大佬的思路,立马过,跪拜大佬的博string = input()list = list(string)list.reverse()count_T = 0 count_AT = 0count_PAT = 0for num in list: if 'T' == num: count_T += 1 elif 'A' == n原创 2017-11-25 10:38:40 · 486 阅读 · 2 评论 -
1039. 到底买不买(20)--python
easy,就是要考虑到重复珠子的情况,我使用了list的移除,判断有时就移除,这样可以保证个数也能对的上。# 得到输入list_1 = input()list_2 = input()# 判断每一个需要的珠子是否在已知的串珠中用count_1 = 0count_2 = 0list_1_0 = list(list_1)for num in list_2: if num in l原创 2017-11-25 09:17:33 · 416 阅读 · 0 评论 -
1031. 查验身份证(15)--Python
测试点通不过:#查验身份证def have_judge(my_list, judge_list, factor_list): sum = 0 x = 0 last_num = my_list[-1] my_list = my_list[:17] for i in my_list: if i >= '0' and i <= '9': sum += in原创 2017-10-25 12:07:18 · 1278 阅读 · 0 评论 -
1030. 完美数列(25)--Python
在我自己开始写的代码中,测试点4老是运行超时,可能是在数据量比较大的时候,运行速度达不到要求,因此,在网上寻找答案,发现了大神的思路,才知道自己的想法是错误的,主要是运行时间达不到要求,因此,参考大神的思路(差不多核心代码都是大神的),下面写一下心得吧:核心处分为两个循环,外循环从列表的第一个位置开始遍历,退出的条件是,当前位置 + 完美数列的个数若是大于或者等于总的个数,则可以退出外层的循环原创 2017-10-23 08:27:15 · 406 阅读 · 1 评论 -
1027. 打印沙漏(20)--Python
题目思路很简单,就是开始时测试点1没有通过,是因为在剩余为0时返回的值没有弄好,因为之前使用了另一种方法,忘记改了。开始还以为为什么没有对输入0进行测试,后来一看题,原来要求输入的为正整数,晕。。。。做到现在,明显的感觉到对于编写这些小程序得心应手多了,继续坚持下去,作为一个码农,代码行很是关键。#使用特殊符号设计沙漏def get_max_num(num, remainder):原创 2017-10-23 09:03:12 · 1212 阅读 · 0 评论 -
1033. 旧键盘打字(20)--Python
之前的时候最后一个测试点一直没有通过,后来在网上搜寻了一下答案,发现自己写的逻辑实在是太混乱了,所以看了一下别人的思路,主要是:(1)首先判断坏键盘中是否有“+”,若是有的话,使用flag标记一下;(2)然后可以循环的判断应该输出的字符串,边遍历边输出,将正确的直接进行输出;(3)在判断时,情况要讨论清楚,分为:* 若是有“+”,且此时判断的元素为大写,则返回False,也就是不输原创 2017-10-28 14:12:21 · 429 阅读 · 0 评论 -
1024. 科学计数法 (20)--python
程序的思路:(1)E的前后两部分分开存储(2)判断指数的大小,若是等于0,不需要做什么改动;若是小于0,则是小数点向左移,不管移动多少位,最终小数点的左边会是0,此时,就要观察移动后的小数点后面需要添加几个0;若是大于0,又分了三种情况(我就是在这个地方少考虑了一种情况)设length_1表示小数的位数,length_2表示指数的大小,例如 "+1.23E-03" ,则 le原创 2017-10-06 11:21:58 · 544 阅读 · 1 评论 -
1029. 旧键盘(20)--Python
简单。无须解释list_1 = input().upper()list_2 = input().upper()my_list = []for num in list_1: if num not in list_2: if num not in my_list: my_list.append(num) print("".join(my_list))原创 2017-10-20 08:19:14 · 183 阅读 · 0 评论 -
1032. 挖掘机技术哪家强(20)--Python
开始的时候把这个问题给理解错了,以为就是简单的选出最大的,谁知道后来仔细的一看,原来不是这么回事,真是的晕。。然后就是重新编写,但是最后一个测试点一直显示的是超时,在网上找了找资源,但是找到的那个答案也是一样的超时,所以就一直还有这个问题的存在,希望路过的大神可以指点一二。#挖掘机技术哪家强num = int(input())dir = {}list = []max = '0'原创 2017-10-27 13:30:05 · 1086 阅读 · 6 评论 -
1028. 人口普查(20)--Python
考虑到一个合适的也没有的时候,应该输出为0;存在的问题,在第一次提交的时候运行正确,但是,相同的代码在第二次提交的时候最后一个测试点显示运行超时,可能是程序有些地方还不够完善。directory = {}count = 0max, min = "1814/09/06", "2014/09/06"max_name, min_name = '', ''num = input()num =原创 2017-10-19 09:04:46 · 1069 阅读 · 0 评论 -
1026. 程序运行时间(15)--Python
很简单的一道题,但是还是有些坑的(1)测试点1:这个测试的是四舍五入是否正确,当然有些特例在测试的时候就没有测出来,不过大面上的四舍五入还是要正确的;(2)测试点4:这个就比较的坑了,我使用了python中的封装类,但是,好像不识别,就只能自己写了一个计算时分秒的方法,好在不是特别复杂,所以这个测试点就是看你的时分秒的格式是否正确了。#import datetime'''程序运行时原创 2017-10-09 09:36:59 · 653 阅读 · 0 评论 -
1048. 数字加密(20)--Python
#得到偶数的结果def get_even(num_A, num_B): num_A, num_B = int(num_A), int(num_B) num = num_B - num_A if num < 0: num += 10 num = str(num) return num#得到奇数的结果 def get_odd(num_A, num_B): list = ['J'原创 2017-11-29 08:12:35 · 310 阅读 · 0 评论 -
1049. 数列的片段和(20)——Python
num = input()num = int(num)string = input().split()list_1 = list(string)sum = 0count_1 = numcount_2 = 1length = len(list_1)#得到结果for i in range(length): list_1[i] = float(list_1[i]) sum += l原创 2017-11-30 10:24:00 · 315 阅读 · 0 评论 -
1053. 住房空置率 (20)--Python
刚开始的时候理解题目有问题,在空置房的理解上出现了错误,理解成了是低于阈值的数据需要达到规定的数目,然后就是测试点1和2过不去,之后看了看别的博主的代码,然后又去读了读题,才恍然大悟。string_1 = input().split()num, ceil_value, ceil_num = string_1[0], string_1[1], string_1[2]num, ceil_num =原创 2017-12-08 14:35:47 · 357 阅读 · 0 评论 -
1038. 统计同成绩学生(20)--Python
测试点3老是提示运行超时,从网上找思路发现说是在处理大数据时,会运行超时。而且看到了某博中有使用python写的程序,非常的简洁,但是提交后也是提醒运行超时,在牛客上也运行不了,还是要再改改,未完待续。。# 得到需要输入的成绩的个数num = input()# 得到成绩列表grades = input().split()# 得到需要统计的成绩list = input().split原创 2017-11-24 18:50:46 · 651 阅读 · 0 评论 -
1037. 在霍格沃茨找零钱(20)--Python
这个题目很简单,注意的就是钱不够支付时的情况#全部使用Knut表示def get_Knut(gall, sick, knut): sum = (gall * 17 + sick) * 29 + knut return sum#将得到的结果换成标准形式 def get_out(sum): sum = abs(sum) gall = sum // (17 * 29) remain原创 2017-11-24 18:01:34 · 487 阅读 · 0 评论 -
1066. 图像过滤(15)--Python
测试点1是测试的在比较是否是需要更改数据时,应该讲字符串改为整数进行比较;测试点3在之前提交的时候一直提醒超时,同样的代码再次提交就会提醒超时。借鉴了网上的代码借鉴的代码n=input().split()for i in range(int(n[0])): m=input().split() for j in range(int(n[1])): if in原创 2017-12-04 14:10:52 · 670 阅读 · 0 评论 -
1064. 朋友数(20)--Python
num = input()num = int(num)list = input().split()sum_list = []sum_dir = {}for my_num in list: length = len(my_num) sum = 0 for j in range(length): sum += int(my_num[j]) if sum not in sum_l原创 2017-12-04 10:10:02 · 315 阅读 · 0 评论 -
1063. 计算谱半径(20)--Python
import mathnum = input()num = int(num)max = 0for i in range(num): fir_num, last_num = input().split() fir_num, last_num = int(fir_num), int(last_num) result = fir_num ** 2 + last_num ** 2 resu原创 2017-12-04 09:55:56 · 418 阅读 · 0 评论