• Python学习笔记


    仅写给弱渣渣的自己……

    首先把python的环境搞一搞……,我觉得在win下pydev挺好使的。

    Eclipse配置PyDev插件:http://blog.csdn.net/sunshine3257/article/details/7408102

    python的指南网上有好多,随便找个翻翻即可入门。

    Python 入门指南:http://www.pythondoc.com/pythontutorial3/index.html

    c和java有神马,就想让python有神马,于是我第一个python程序就写了一个标准I/O重定向:

    1 read = open('stdin.in', 'r')
    2 sys.stdin = read
    3 a, b = map(int,raw_input().split())
    4 print(a + b)
    View Code

     慢慢的看如《Python Essential Reference》这样的教材,并不适合饥不择食的我,so,直接去网站上CHA代码来看了。

    找了个算法题练习了下基本的逻辑结构和数据存储,于是有了下面我的第二个python程序:

     1 n  = int(input())
     2 a = input()
     3 b = input()
     4 cnt = 0
     5 index1 = -1
     6 index2 = -1
     7 mp = {}
     8 flag1 = True
     9 flag2 = True
    10 l = [chr(ord('a')+  i) for i in range(26)]
    11 for i in range(n) :
    12     if a[i] != b[i] :
    13         cnt += 1
    14         mp[a[i], b[i]] = i
    15 for i in l :
    16     if flag1 :
    17         for j in l :
    18             if flag1 :
    19                 if (i, j) in mp :
    20                     if(j, i) in mp :
    21                         index1 = mp[i, j] + 1
    22                         index2 = mp[j, i] + 1 
    23                         flag1 = False
    24                     else :
    25                         for k in l :
    26                             if(j, k) in mp :
    27                                 index1 = mp[i, j] + 1
    28                                 index2 = mp[j, k] + 1
    29                                 flag2 = False
    30                             elif(k, i) in mp :
    31                                 index1 = mp[i, j] + 1
    32                                 index2 = mp[k, i] + 1
    33                                 flag2 = False
    34                                 
    35 print(cnt -(2 if flag1 == False else 1 if flag2 == False else 0))
    36 print(index1, index2)
    View Code

    总结下python一些我觉得“不可思议”的地方:

    for语句就是迭代一个序列的,并无其他用法……

    python的字典很方便,很像c和java里的map,不过依然沿袭了python任性的特点,key和value都可以是任意类型的,不过key还是unique的,也就是不能有同类型同值的key,否则会被后来赋值的覆盖。

    列表和元组都有解析构造的形式,不熟悉这种语法的很容易被唬住,所以这部分还是查查reference,把原理搞明白。

    if else 这类的语句除了常规写法外还有表达式这样的写法,如 a = 1 if b > c else 0 ,好有趣……

    其他的都比较容易接受。

    目前就发现这些,未完待续……

  • 相关阅读:
    Pagodas
    Bazinga
    取石子问题
    Sudoku Killer(hdu 1426 数独)
    欧拉函数
    CCPC Ancient Go
    ZZNU 1992: 情人节的尴尬
    fzu Problem 2128 最长子串(KMP + strstr 经典好题)
    POJ
    HDU
  • 原文地址:https://www.cnblogs.com/mcflurry/p/4410201.html
Copyright © 2020-2023  润新知