CCF使用python编写的注意点

CCF 编译器使用IDLE

  • python版本是3.6.5
  • 不能使用numpy这些第三方库,只能使用自带的库
  • 模拟考试题目给的限制时间小于正常考试时间,即 正常时长/10 = 模拟测试时间
  • CCF考试时给的内存一般都比较大

准备的东西

  • 训练题:(1)ACM题库。(2)CCF-CSP真题,总结每年题型。
  • 书籍:CCF—CSP考试是可以带书进去的:(1)如果对语法掌握不熟练的话可以带一本编程语言书。(2)算法书,有资源的可以找一本ACM培训竞赛书,前面也说过书上的算法对付考试是不行的。需要更好的算法。
  • 每天写程序,不能手生,最少得2h,适应4h的考试时间。

CCF会员

  • 如果是学生,可以充值一下CCF会员,两年也就75元,有了会员资格报名也会便宜很多
  • 不是学生,想提交测验一下代码:(1)借别人的CCF会员账号,支持两人同时登陆;(2)借别人的学生证,自己充钱。



1、input (转化为int)

Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。

# 将输入的变量,以空格划分
x,y,z = list(map(int, input().split()))

当然除了input()函数还有sys模块带有标准输入,一般情况下比input()函数快4倍,这里注意下区别,input()把读到的行用字符串的形式返回,但不会返回行尾的换行符,而sys.stdin.readline()则会,加上strip()函数效果就一样了

arr=sys.stdin.readline().strip()


2、split

Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串。返回分割后的字符串列表。

str.split(str="", num=string.count(str)).
  • str -- 分隔符,默认为所有的空字符,包括空格、换行( )、制表符( )等。
  • num -- 分割次数。默认为 -1, 即分隔所有。


3、List

空间申请

IndexError:list assignment index out of range
ERROR code

b = []
for i in range(10):
    b[i] = 7

空数组不能直接指定位置,list是一个空的,没有一个元素,进行list[0]就会出现错误!
解决方法1

b.append(1)

解决方法2
生成一个定长的list:

b=[0]*len(data)
b[1]=1

#### list的插入和删除 ``` aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.remove('xyz') alist.insert(index,obj) obj=alist.pop(index) #defalut index=-1即最后一个元素 ```

4、输出格式如1 2 3 4

ans=[1,2,3,4]
print(' '.join(map(str,ans)))

map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回



参考

https://www.jianshu.com/p/0f2c1e43b2a4
https://blog.csdn.net/gufenchen/article/details/100165861
https://blog.csdn.net/u013495762/article/details/82870455
https://www.cnblogs.com/lincappu/p/8179475.html(map函数用法)

原文地址:https://www.cnblogs.com/z-712/p/13512434.html