Non-unique Elements def checkio(x_list=[]): x_tuple = tuple(x_list) for i in x_tuple: if x_list.count(i) == 1: x_list.remove(i) print x_list
roman-numerals 罗马数字来源于古罗马编码系统。它们是基于字母表的特定字母的组合,所表示的数等于这些数字相加(或者是相减)得到的数。前十位的罗马数字是:
I,II,III,IV,V,VI,VII,VIII,IX和X。
罗马记数系统不是直接的十进制为基础,它没有零。罗马数字是根据这七个符号的组合:
符号值
I 1 (unus) V 5 (quinque) X 10 (decem) L 50 (quinquaginta) C 100 (centum) D 500 (quingenti) M 1,000 (mille)
更多额外的关于罗马数字的信息可以参考 维基百科的文章.
在这个任务里,你应该返回给出指定的整数值的范围从1到3999的罗马数字。
输入: 一个整数 (int).
输出: 一个字符串形式的罗马数字 (str).
范例:
checkio(6) == 'VI' checkio(76) == 'LXXVI' checkio(13) == 'XIII'
如何使用: 这是一个有教育意义的任务,它让你去探索不同的记数系统。由于罗马数字字体经常使用,它也可以被用于文本生成。建筑外表的年号和基石常写于罗马数字。这些数字在现代世界有许多其他的用途,你可以 在这 了解它……或者,也许你会遇到有一个来自古代罗马的客户;-)
前提: 0 < number < 4000
import sys
def checkio(a_num): num_dir = {1:’I’,2:’II’,3: ‘III’,4: ‘IV’,5: ‘V’,6 :’VI’,7: ‘VII’,8 :’VIII’,9: ‘IX’,10: ‘X’,20:’XX’,30:’XXX’,40:’XL’,50: ‘L’,60:’LX’,70:’LXX’,80:’LXXX’,90:’XC’,100: ‘C’,200:’CC’,300:’CCC’,400:’CD’,500: ‘D’,600:’DC’,700:’DCC’,800:’DCCC’,900:’CM’,1000: ‘M’,2000:’MM’,3000:’MMM’}
a_str = str(a_num) len_num = len(a_str) roman_list = [] for i in range(0,len_num): xx_num = len_num-i-1 ww = int(a_str[i])*10**xx_num if ww == 0: continue else: roman_list.append(num_dir[ww]) print ''.join(roman_list)
checkio(3999)
笔试选择题考试成绩检测脚本
学生的答题都是保存在文本文档中,以学号命名,一题占一行,区分大小写;
答案保存为00文件
[root@mastera stutest]# ls 00 10 11 13 16 17 18 19 2 20 24 25 26 27 28 3 31 35 4 43 45 46 5 55 56 58 6 7 9 ule_check.py
检测脚本如下
#!/usr/lib/python # -*- coding: utf-8 -*- names=locals() a_list=[] with open('00','r') as f: for i in f.readlines()[:50]: a_list.append(i.strip()) file_list=[2,3,4,5,6,7,9,10,11,13,16,17,18,19,20,24,25,26,27,28,31,35,43,45,46,55,56,58] for f_num in file_list: f_str='%d'%f_num names['b_list%s' % f_num]=[] with open(f_str,'r') as f: for i in f.readlines()[:50]: names['b_list%s' % f_num].append(i.strip()) num = 50 if len(names['b_list%s' % f_num]) != 50: print('{}没有成绩'.format(f_num)) continue for i in range(0,50): if names['b_list%s' % f_num][i]!=a_list[i]: num = num - 1 print('{}的成绩为:{}'.format(f_str,num*2))
检测结果如下:
[root@mastera stutest]# python ule_check.py 2的成绩为:36 3没有成绩 4没有成绩 5的成绩为:74 6的成绩为:50 7的成绩为:74 9的成绩为:68 10的成绩为:68 11的成绩为:64 13的成绩为:82 16的成绩为:56 17的成绩为:66 18的成绩为:68 19的成绩为:66 20的成绩为:64 24的成绩为:60 25的成绩为:72 26的成绩为:58 27的成绩为:46 28的成绩为:44 31的成绩为:70 35的成绩为:52 43的成绩为:76 45的成绩为:0 46的成绩为:10 55的成绩为:64 56的成绩为:60 58的成绩为:70