• python 入门


    Python程序是大小写敏感的! 以#开头的语句是注释,每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。

    数学运算

    a的N次方例如2**4表示2*2*2*2

    10的N次方,可以写成eN, 例如 1.23x109就是1.23e9

    10//3 表示10除以3取整(去掉小数), 如果要四舍六入五成双,则用round(). 如果要进1, 则要先import math, 然后用math.ceil(3.3)

    数组切片

     >>> L = ['1', '2', '3', '4', '5']
    L[M:N] 表示是 从索引M开始取,直到索引N为止,但不包括索引N. 省略M,则默认M=0; 省略N,则取到最后一个索引,倒数第一个元素的索引是-1

    >>> L[0:3]
    ['1', '2', '3']
    >>> L[1:]
    ['2', '3', '4', '5']
    >>> L[-1]
    '5'
    >>> L[-3:]
    ['3', '4', '5']
    >>> L[-3:-5]
    []
    >>> L[-5:-3]
    ['1', '2']


     list元素也可以是另一个list

    >>> s = ['python', 'java', ['asp', 'php'], 'scheme']
    >>> len(s)
    4

    定义类和函数,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回

    class Utility:
         def ToGB(str):
             return str.decode('gb2312') 

     

     类型转换, str(), int() 函数

    python假设需要进行int转型的字符串仅仅包含数字,所以int("1.0") 会出错 invalid literal for int() with base 10: 

    windows 安装python后,启动时提示缺少api-ms-win-crt-runtime-l1-1-0.dll

    请安装Visual C++ Redistributable for Visual Studio 2015 组件,但不知道为什么,我的是win7 64位系统, 却要安装vc redist x86版本,安装x64版本却不行
    https://www.microsoft.com/zh-cn/download/details.aspx?id=48145 

    windows 安装py包

    C:UsersAdministratorAppDataLocalProgramsPythonPython36>py -m pip install xlrd 

    mac python版本选择

    mac 自带python2.7, 在终端命令行打python,默认启动2.7,我们学习的是python3.6, 终端命令行要打python3.6即可

    lrwxr-xr-x  1 root  wheel       71  1 10 22:12 python3.6 -> ../../../Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 

    mac python urllib访问https出现CERTIFICATE_VERIFY_FAILED解决方案

    由于默认python3.6没有任何证书,我们需要手动安装:

    打开终端运行:

     sudo /Applications/Python 3.6/Install Certificates.command 

    mac  idle为何不能输入中文?该如何解决?

     Python模块的标准文件模板

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    ' a test module '
    
    __author__ = 'terry zhang'

    第1行和第2行是标准注释,第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本身使用标准UTF-8编码;

    第4行是一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释;

    第6行使用__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名;

    以上就是Python模块的标准文件模板,当然也可以全部删掉不写,但是,按标准办事肯定没错。

    上下文管理器(context manager)是Python2.5开始支持的一种语法,用于规定某个对象的使用范围。一旦进入或者离开该使用范围,

    会有特殊操作被调用 (比如为对象分配或者释放内存)。它的语法形式是with...as...

    # with context manager
    with open("new.txt", "w") as f:
    print(f.closed) f.write("Hello World!")
    print(f.closed) 

    经常会在代码的最下面看到if __name__ == '__main__':,它的作用

    模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。

    在cmd 中直接运行.py文件,则__name__的值是'__main__';

    而在import 一个.py文件后,__name__的值就不是'__main__'了;

    从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件 

    windows, csv输出时会多一行出来,怎么处理?

    csv输出时多一行, 这样写就不会 writer = csv.writer(csvfile,lineterminator=' ')

    https://stackoverflow.com/questions/3191528/csv-in-python-adding-an-extra-carriage-return 

    print 函数,每个项都有左右两边的空格,怎么去掉.

    print('",address,"','",phone,"','",recvName,"',1,'",province,"','",city,"','",region,"','",shop,"','",jieduan,"')",sep='')

     怎么访问sqlserver

    py -m pip install pyodbc

    import pyodbc

    #https://github.com/mkleehammer/pyodbc/wiki/Cursor
    cnstr = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.1.2\sql;DATABASE=testDB;UID=sa;PWD=myPassword')
    cursor = cnstr.cursor()
    phone=13012345678
    for row in cursor.execute("select cusid from customer where phone='"+ str(phone)+"'"):
        cusid=row.ccusid

     python自带的查看帮助功能,可以在编程时不中断地迅速找到所需模块和函数的使用方法

    例如要查询math模块的使用方法,可以如下操作:
    >>> import math
    >>> help(math)

    列举出math模块下所有的函数名称
    >>> dir(math)

    查看math下的sin()函数
    >>> help(math.sin)

     AttributeError: module 'json' has no attribute 'load'

    犯了低级失误, 我的python文件名叫json.py, 用import json,没有导入 python 内置的模块,而是导入了本地的json.py 文件!!

    Python 处理包也是相当方便的,简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件。
    最简单的情况下,init.py 为空文件即可,当然它也可以执行包的一些初始化代码。
    每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包。只要模块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用。

    列表推导式(list comprehension)是一种简化代码的优美方法 

    #http://python.jobbole.com/80823/
    
    1 平方列表            squares = [x**2 for x in range(10)]
    2 整除3的数字列表  numbers = [x for x in range(100) if x % 3 == 0]
    ...
    

    pathlib:优雅的路径处理库 

    from pathlib import Path

    p= Path('cust_a.csv')
    print(p.read_text('utf-8'))

    p的父路径
    p.parent

    所有p的祖辈路径
    p.parents #返回一个列表,序号越大离p越远

    p目录下的所有文件
    p.iterdir() # 返回一个迭代器,包含p下所有文件


    判断p是不是文件

    p.is_file()
    判断p是不是目录

    p.is_dir()
    判断p是不是绝对路径

    p.is_absolute()
    判断p是否符合某一模式

    p.match('C:Windows*')

    在p下搜索符合某一模式文件

    p.glob('*.py')

    在p及其子目录下搜索符合某一模式文件

    p.glob('***.py')
    p.rglob('*.py')


    当p不是目录时,将其创建为目录

    p.mkdir()

    当p是空目录时,移除p

    p.rmdir()

    利用relative_to获取当前目录文件名

    p.relative_to(p.parent)

    当p是文件时

    获取文件名
    p.name

    获取后缀
    p.suffix

      

    解决mac上matplotlib(plot)无法显示中文的问题

    from matplotlib import pyplot as plt
    from matplotlib.font_manager import FontProperties
    import random
    from pylab import *
    
    myfont = FontProperties(fname="/System/Library/Fonts/stHeiTi Medium.ttc",size=18)
    plt.rcParams['axes.unicode_minus'] = False
    t = np.arange(-5*pi, 5*pi, 0.001)
    print(t)
    y = sin(t)/t
    print(y)
    my_post = plt.plot(t, y)
    plt.title(u'matplotlib中文显示测试terry ',fontproperties=myfont)
    plt.xlabel(u'这里是X坐标',fontproperties=myfont)
    plt.ylabel(u'这里是Y坐标',fontproperties=myfont)
    
    plt.show()
  • 相关阅读:
    设计模式详解(图码)
    设计模式详解(图)
    Zookeeper学习
    取消单元格的点击事件
    ios 中生成随机数
    IOS 时间和时间戳之间转化
    偏好存空判断
    限制textfield的文字长度
    tabBar的图标不被系统渲染
    (转)IOS http请求的get 和 post的请求的区别
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/Python_Beginner.html
Copyright © 2020-2023  润新知