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

来源:互联网 发布:输入法 ubuntu 编辑:程序博客网 时间:2024/06/07 05:30

于是,上风一拍脑袋,高考又要换语言了,这次据说是有趣的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')    namedtupleFiles:    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 0
原创粉丝点击