• 【颓废篇】人生苦短, 我用python(二)


    当时产生学习python的欲望便是在看dalao们写脚本的时候…
    虽然dalao们好像用的是js来着..
    不过现在好像很多爬虫也可以用python写啊…
    所以学python没什么不妥.
    而且csdn整天推广告说python怎么怎么有前途不是..

    那就好好学呗.

    • python的long类型超赞! 因为是自带高精的… 不知道比C++高到哪里去了(单指高精方面
      而且好像乘法是自带fft的… 碾压自己现在都写的不熟的辣鸡高精十条街啊…
      所以我们就可以去水FFT的模板题

      n=int(input())
      a=int(input())
      b=int(input())
      print(a*b)

      这代码好像还算长的…
      不过用long的时候数字后面记得加个L哦~

    • python的除和模是挺迷的, 因为python的除法会往负无穷取整.

      >>>-1/3
      -1

      这就和C/C++不是很一样… 但两者又都遵守

      a%b=ab(a/b)

      这一点, 所以取模也挺不一样的
      >>>-1%3
      2

      当然只对于负数会出现一些问题 遇到的时候要注意一下.
      哦 对了 python里面小数也可以有整除和取模这种操作:

      >>>4.7//3.5 # 要用两个除号
      1.0 #结果是浮点型的
      >>>4.7%3.5
      1.2

      还有乘方

      >>>16**15
      1152921504606846976

      然而并没有++和–这样的操作让C++选手不很习惯..

    • 自己打代码的时候常常产生C++的习惯, 但是python声明变量是不带类型的..

        a=3 # 这样就行了 前面不要写int
    • string list dict基本就对应着std::string std::vector std::map了 背一下操作名就行了(比如append)
      而元组这东西就有点诡了, 说是像结构体但并不能修改…
      不过还是挺有用的(比如当多重返回值)

    • 强转的话函数式强转就行了

    a='Hello, World!'
    b=2333
    c=a+str(2) #字符串的加法表示连接
    print c
    # 下面是结果
    Hello, World!2333
    • python里面的判断是有
      1. if
      2. elif (else if的abbr.)
      3. else
        几种的, 记得后面要加”:” 然后不用{}括程序块而是用缩进.
        所以python程序写大了要准备游标卡尺...

    栗子

    a=3
    b=2
    if(a>b):
        print 'a>b'
    elif(a==b):
        print 'a==b'
        print 'a-b=0' #不管几行 只要是一层的 缩进一样就表示了
    else: #每个地方都要打':'
        print 'a<b'

    哦 然后有一种操作叫pass就是空语句 为了保持结构的完整而设计

    a=3
    b=2
    if(a>b):
        pass #什么都不输出
    else:
        print 'a<b'
    • 循环的话python中有for循环和while循环, 但是没有do..while循环
      然后还有熟悉的break continue 然后还有新伙伴pass
      这个for循环搭配list有一种foreach的感觉
    l=[1,3,5,7,9]
    s=0
    for i in l: #':'
        s+=i
    print s 

    而常见的for循环

    for(int i=1;i<=10;i=i+2);

    则大概长这样

    for i in range(1,11,2): #python的range左闭右开 最后一个参数表示步进
        pass

    while循环就很普通没啥说的了

    • python中各种序列很有意思, 这里以一个list为例
    >>>l=[1,2,3,4,5,6,7]
    >>>l[2] #python下标从0开始
    3
    >>>l[-2] #表示读取倒数第二个元素
    6
    >>>l[3:6] #截取 依然左闭右开 结果类型还是个list
    [4,5,6]
    >>>l[:4] #还可省略前面或后面的数字
    [1,2,3,4]
    >>>a=4
    >>>l[:a] #还可以传变量
    [1,2,3,4]
    >>>l[-10] #越界会报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: list index out of range
    >>>l[15:19] #截取越界并不会报错 会截出空序列
    []
    >>>len(l) #len函数获取长度
    7
    >>>max(l) #还能查询最大值 最小值
    >>>7
    >>>l=[2,3,1,4,6,5]
    >>>l.sort() #list还封装了sort reverse等方法
    >>>l
    [1,2,3,4,5,6]

    是不是觉得功能很强大呢!
    然后是一些字典(dict)的知识, 比如

    • 这是个map而不是multimap
    • 键值必须不可变. 所以可以是数字、字符串、元组, 但不能是列表.
    • 查询的时候用封装过的方法就好了
    #coding=utf-8
    d={
        'Name':'Enzymii',
        'Age':3,
        'Height':2.25,
        'Letters':['E','n','z','y','m','i','i']
    }
    
    print d.get('Name')
    print d.has_key('Weight')
    print d.values()
    # 下面是结果
    Enzymii
    False
    [3, ['E', 'n', 'z', 'y', 'm', 'i', 'i'], 'Enzymii', 2.25]

    所以还是挺好用的… (尤其是用来提交表单的时候~

    就先写这些吧, 都是写很简单很基础的东西…

  • 相关阅读:
    Sprinig.net 双向绑定 Bidirectional data binding and data model management 和 UpdatePanel
    Memcached是什么
    Spring.net 网络示例 codeproject
    jquery.modalbox.show 插件
    UVA 639 Don't Get Rooked
    UVA 539 The Settlers of Catan
    UVA 301 Transportation
    UVA 331 Mapping the Swaps
    UVA 216 Getting in Line
    UVA 10344 23 out of 5
  • 原文地址:https://www.cnblogs.com/enzymii/p/8412109.html
Copyright © 2020-2023  润新知