Python入门指南学习笔记-2-一些语法特例

2017-07-19  本文已影响0人  肖恩顿

数学运算

注意整数,float

5/3  #1
5/3.0 #1.6666666666666667
5//3  # 1
5//3.0 #  1.0

除法 (/) 返回的类型取决于它的操作数。如果两个操作数都是 int,将采用 floor division 并返回一个 int。如果两个操作数中有一个是 float,将采用传统的除法并返回一个 float。还提供 // 运算符用于 floor division 而无论操作数是什么类型。

字符串

字符串相乘
>>> print "*"*5 #*****
使用r前缀对字符串转义
    >>> print 'C:\some\name'
    C:\some
    ame
    >>> print r'C:\some\name'
    C:\some\name

string和unicode

str函数默认编码是ascii

    >>> u"abc"
    u'abc'
    >>> str(u"abc")
    'abc'
    >>> u"木卫二"
    u'\u6728\u536b\u4e8c'
    >>> str(u"木卫二")
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-    2: ordinal not in range(128)
unicode和utf-8互转
    >>> u"木卫二".encode("utf-8")
    '\xe6\x9c\xa8\xe5\x8d\xab\xe4\xba\x8c'
    >>> u"木卫二"
    u'\u6728\u536b\u4e8c'
    >>> unicode("\xe6\x9c\xa8\xe5\x8d\xab\xe4\xba\x8c","utf-8")
    u'\u6728\u536b\u4e8c'
    >>> '\xe6\x9c\xa8\xe5\x8d\xab\xe4\xba\x8c'.decode("utf-8")
    u'\u6728\u536b\u4e8c'
    >>> print u'\u6728\u536b\u4e8c'
    木卫二
禁止换行输入出

用一个逗号结尾就可以禁止输出换行:
>>> a, b = 0, 1
>>> while b < 1000:
... print b,
... a, b = b, a+b
...
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 98

切片

字符串的切片,也是python比较特殊的语法,因为相关文章太多,本文不在详细介绍,只简单介绍下面2点。

复制字符串
    >>> a="hello python"
    >>> a[:]
    'hello python'
按步长取值
    >>> a="hello python"
    >>> a[::2]
    'hlopto'
    >>> a[::3]
    'hlph'

(注意,第一个元素一定会选中)

上一篇 下一篇

猜你喜欢

热点阅读