zoukankan      html  css  js  c++  java
  • 一点一滴学Python(1)

    这段开头来自《Python基础教程》:
    编写C程序就像是拿着剃刀的人在刚打过蜡的舞场里跳快舞。——Waldi Ravens
    C++:难以学习,生就如此。——匿名
    Java在很多方面就像是C++。——Michael Feldman
    现在请看一种前所未有的表演……——Monty Python的作品《飞行的马戏团》

    下面我们开始吧……

    请注意:我们研究的是Python 2.x版本。
    1、内置对象类型
    Python中的变量实际上是对象,可以说Python是完全基于对象的。
    Python支持五种主要的内置对象类型Number(数字)、String(字符串)、List(列表)、Dictionary(字典)和Tuple(元组)和一种外部数据类型File(文件)。
    Number=12345
    Number=12.345
    不管是整数还是浮点数,都可以属于数字类型。
    String="hello"
    String='hello'
    字符串可以用双引号,也可以用单引号括起来。
    List=[1,'Two',3]
    列表,也有译作“序列”可以包含不同类型的元素。
    Dictionary={'one':1,'two':2,'three':3}
    字典,键与值对应的存储方式,就像是通讯录。
    Tuple=(1,'Two',3)
    元组是一种不可修改的列表。
    Python不必明确变量的类型,Python解释器会检查对象的信息,并创建或修改对象以与新类型相匹配。
    2、基本运算符
    X or Y    逻辑或(仅在X为false时,对Y求值)
    X and Y     逻辑与(仅在X为true时,对Y求值)
    not X     逻辑非
    lambda args:表达式    匿名函数
    <,<=,>,>=,==,<>,!=    比较测试
    is,is not    识别测试
    in,not in    成员测试
    X|Y    按位或
    X^Y    按位异或
    X&Y    按位与
    X<<Y,X>>Y    X向左或向右移Y位
    X+Y,X-Y    相加/连接,相减
    X*Y,X/Y,X%Y    相乘/重复,相除,求余/格式化
    X**Y        乘方
    -X,+X,~X    一元否,同一,按位取反
    X[i],X[i:j],X.Y,X(...)    索引,分片,限定,函数调用
    (...),[...],{...},'...'    Tuple,List,Dictionary,转化为String
    +=,-=,*=,/=,%=,**=,<<=,>>=,&=,^=,|=        赋值表达式
    3、数字
    a、其他进制的表示
    十六进制     0xff
    八进制    0377
    b、长整数
    内置基本数据类型限于存储32位长的数。因此可以表示的最大数为2^31-1,另一位表示负数。
    Python支持任意长整数——可创建数字长为1000的数,并和其他数字一样使用。需在数字常量尾追加l(小写的L)或L。
    long=11111111111111111111111112222222222222222222222333333333333333333333344444444444444444444444555555555555555555555555666666666666666666666666666666667777777777777777777788888888888888888888888999999999999999999999999990000000000000000001111111123456789L
    但是很大的浮点数会以科学记数法的方式显示。
    c、复数
    Python用普通符号支持复数。实部和虚部用加号分开,虚部后加j或J。
    a=1+2j
    b=2.2+3.3J
    d、内置数值函数
    abs(x),返回数的绝对值,忽略正负。若x为复数,返回复数模
    coerce(x,y),用普通表达式规则将x和y变成常用类型,返回Tuple值。例如coerce(1,2.5)=(1.0,2.5)
    divmod(x,y),用x除以y,返回包含商和余数的Tuple值。等价于(a/b,a%b)
    pow(x,y[,z]),x的y次幂。如果有参数z,返回值为pow(x,y)%z
    round(x[,y]),将浮点数x舍入成小数位为0位。如果有参数y,舍入成小数位为y位。注意用int将浮点数转换成整数时无舍入过程。
    4、字符串
    'XXX'和"XXX"没有区别。
    """XXXXXX"""一直向字符串中添加文本直到出现三个连续双引号。三个单引号配对也可以。
    text="""this is
    a test string"""
    print text
    将原样输出两行。
    如果写成
    text="""this is \
    a test string"""
    如果一行放得下的话,就合并成一行。
    注意字符串不能与其他对象进行连接。
    print 'hello'+5是错误的。
    可以用*运算符表示重复字符串。
    'hello'*5='hellohellohellohellohello'
    len()函数可以返回字符串的长度。
    可以用下标[i]访问字符串中的某一个字符。
    字符串可以做分片操作
    string="this is a test string"
    print string[2:10]
    print string [:5]
    print string [3:]
    print string [-1]
    print string [:-9]
    print string [-9:]
    string[start:end]
    返回的字符串包含从start起始到end但不包含end的所有字符。
    注意:虽然Python允许对字符串进行分片和其他操作,但是必须记住字符串是固定序列——不能改变字符位置。改变字符串内容的唯一方法是新建一个字符串。可以新建字符串然后拼接,可以使用外部模块string提供的函数完成,也可以使用字符串格式化。
    字符串格式化:'This is %s,%d'%('a test string',10)
    ===>This is a test string,10
    转换格式列表
    %%    百分号标志
    %c    字符及其ASCII码
    %s    字符串(可用于任何对象)
    %d    有符号整数(十进制)
    %u    无符号整数(十进制)
    %o    无符号整数(八进制)
    %x    无符号整数(十六进制)
    %X    无符号整数(十六进制大写字符)
    %e    浮点数字(科学记数法)
    %E    浮点数字(科学记数法)
    %f    浮点数字(用小数点符号)
    %g    浮点数字(根据值的大小采用%e或%f)
    %G    浮点数字(类似%g)
    %p    指针(用十六进制打印值的内存地址)
    %n    存储输出字符的数量放进参数列表的下一个变量中
    调整输出格式
    空格    用空格作正数的前缀
    +    用加号作正数的前缀
    -    区域左对齐
    0    用0而非空格进行右对齐
    #    用0做非零八进制数前缀,0x做十六进制数前缀
    数字    最小域宽度
    .数字    指定浮点数精度(小数点后的位数)
    注意:运算符%可用于字典型对象。
    test={'one':'1','two':2}
    print 'the result is %(one)s and %(two)05d' %test
    ===>the result is 1 and 00002
    转义字符
    \    追加下一行的内容
    \\    反斜线符号
    \'    单引号
    \"    双引号
    \a    Bell
    \b    退格(Backspace)
    \e    转义
    \000    空。Python字符串不以空结束
    \n    新起一行或换行
    \v    纵向制表符
    \t    水平制表符
    \r    回车
    \f    换页
    \0yy    八进制数yy代表的字符
    \xyy    十六进制数yy代表的字符
    \y    以上未列出的任何字符y以普通格式输出
    原始字符串,不想任何转义字符生效
    print r'\a\r\n1'
    ===>\a\r\n1

  • 相关阅读:
    String、StringBuffer、StringBuilder源码解读
    查询条件左边写入函数,导致无法命中索引
    【图形学手记】law of the unconscious statistician
    【图形学手记】蒙特卡洛方法相关笔记
    【图形学手记】抽样分布相关的数学笔记
    C++ lower_bound
    【图形学手记】Inverse Transform Sampling 逆转换抽样
    【Java学习笔记】LinkedList JDK1.6
    【疑难杂症】new Date() 造成的线程阻塞问题
    【疑难杂症】【Solved】maven-compiler-plugin 在 idea 下的问题
  • 原文地址:https://www.cnblogs.com/pythonlover/p/2265807.html
Copyright © 2011-2022 走看看