准备阶段:
蓝桥杯今年第一年开设Python组,所以我们备战没有太多的东西可以参考。经过几天的摸索,本人终于有了点头绪,在此记录一下:
编译环境:
问题:
之前我都是在pycharm上编译的,但是根据最近的消息官方只说了编译环境是IDIE,没有提能不能用pycharm。刚开始用IDIE很不习惯,它基本上都是一行一行的编译,无法写成成块代码。
解决方案:
1.按Ctrl + n 新建一个文件夹,这里可以自由换行
2.写完后按F5编译(会提示保存)
输入陷阱:
我们以最简单的A+B problem为例
输入:
1 1
20 10
输出:
2
30
正确写法:
while True:
try:
a = input().split()
b = int(a[0]) + int (a[1])
print(b)
except:
break
运行结果:
1 1
2
20 10
30
错误写法:
while True:
try:
a = int(input())
b = int(input())
print(a+b)
except:
break
解析:在示例中参数a,b的输入是由空格隔开的,而这样只能由换行隔开,不符合格式规范
运行结果:
1
1
2
10
20
30
在这个例子中,我们也学到了循环输入的方法,可谓一举多得。
推荐几个个不错的oj :
蓝桥杯ACM训练系统
杭电oj
最近也找到数据结构与算法Python实现的PDF,现在可谓教材,编译器,oj都有了。终于可以好好练习了。
随笔:
- a = a+a 与 a+=a 的区别:
a = [100]
def test (num):
num = num + num
print (num)
test (a)
print(a)
运行结果:
[100, 100]
[100]
对比:
a = [100]
def test (num):
num += num
print (num)
test (a)
print(a)
运行结果:
[100, 100]
[100, 100]
解析:
python中使用a = a + a创建了一个新的变量a,覆盖了之前的变量a。而使用a += a 则是直接对原变量 a 进行操作。