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

据说高考又要换语言了,这次说是有趣的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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值