您的位置:首页 > 编程语言 > Python开发

Python 3.5 基于ACM问题的语法笔记

2016-05-17 14:33 519 查看
于是,上风一拍脑袋,高考又要换语言了,这次据说是有趣的Python。然而,学起来并不有趣,尤其有着Pascal般严格的语法基础的时候,很是悻悻然的样子。据说py3不兼容于py2,然后py4也将不兼容于py3,这是真的么???

输入和输出

输出用
print()
,很多书上都讲得很细

标准输入用
input()
,输入的数据都是字符串,ACM题目大多数都是整数处理,输入数据见都是空白符分隔,对于C/C++而言,直接scanf/cin就可以逐个以整数的形式输入。python对于这样的输入数据就要特别进行处理:以空白符分割输入数据。于是,一个A+B Problem就不得不用到Python的“数组”:

x = input().split()
a = int(x[0]) #第一个整数
b = int(x[1]) #第二个整数
print(a+b)


当有多个测试数据的时候,需要循环读入:

x = input()
a = []
for i in x.split():
a.append(int(i))

print(sum(a))


另外,一个
input()
对应输入的一行

数据类型

变量定义

不需要定义变量,更不需要定义变量的类型,直接赋值就行,这点像VB和php

数据类型

Numbers:
1234
3.1415
3+4j
0b111
Decimal()
Fraction()
Strings:
'spam'
"Bob's"
b'a\x01c'
u'sp\xc4m'
Lists:
[1, [2, 'three'], 4.5]
list(range(10))
Dictionaries:
{'food': 'spam', 'taste': 'yum'}
dict(hours=10)
Tuples:
(1, 'spam', 4, 'U')
tuple('spam')
namedtuple
Files:
open('eggs.txt')
open(r'C:\ham.bin', 'wb')
Sets:
set('abc')
{'a', 'b', 'c'}
Other:
core types
Booleans
types
None


dict用作简单hash表

不需要定义变量,那么要用hash怎么办?比如统计[1,100]内每个整数出现个次数,用hash表多方便啊。C/C++数组可以初始化成0,然后直接
a[x] += 1
来统计x值得个数,然后py的dict类似于C/C++的set,有key和value键值对,没有设置过键值不能直接用,可以用
in
来判断键名是否存在:

a = {}
for x in input().split():
if int(x) in a :
a[int(x)] += 1
else:
a[int(x)] = 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: