(三卡塔尔国python的转义字符,换行符和除法

python2和python3除法的最大区别:

Python中将两个整数相除,默认结果是为整数的。但我们可以通过下面的方法,使得两个整数相除的结果为小数。

在python2中执行除法操作如果结果小于1就会返回0

如下面的例子:

        >>>81/82        0

math.floor() & math.trunc()

Python的转义字符: \

python中,我们知道,数据类型-字符串的写法有多种方式,我们可以是单引号双引号三引号都可以表示一个字符串,比如,下面的写法都是等价的

print('hello, Python!')

print("hello, Python!")

print("""hello, Python""")

print('''hello, Python!''')

尽管写法多样,一般来说,个人比较推荐''""的方式,因为这样看起来比较清晰,让阅读你的代码的人,一目了然。

然而,在日常开发中,我们可能不仅仅是用到字符串这么简单,有可能还会在一个字符串中使用到双引号"",
那么,这个时候我们直接输入双引号是不对的,这会让python解释器无法识别你要做的操作,这个时候,我们就要使用到python中的一种常用字符:转义字符\

我们来看一下它的使用方法

现在我想要输出:life is short, “I use Python!”,
那么,我们可以使用转义字符来输出这句代码

print("life is short, \"I use Python!\"")

这样,我们的要求就完美解决了,那么,这个句子看起来不太方便,我想要换行怎么办呢?

这时候,我们就要用到另一种常用字符,叫做“换行符”,用\n表示,上面这段代码,我们要换行的话可以加入换行符就可以了,如下

print("life is short,\n\"I use Python!\"")

输出

life is short,
"I use Python!"

如果我要在字符串中输出\,
也就是要把转义字符当做一个字符输出的时候,和转义其它字符一样,我们一样要使用转义字符来对其进行转义,如

print("this is escape character: \\")

输出

this is escape character: \

有人可能又会问了,那如果我想在字符串内部输出很多换行符,但是又不需要转义呢?

好的,python已经将这个工作做好了,我们可以直接在字符串开始的时候加入字母r,
这样,输出的字符串中的 \ 就不会被转义

print(r"\\\\\\\\\\\ ")

输出

\\\\\\\\\\\ 

python2:

图片 1from __future__ import division
图片 2
图片 3print 7/3

如果你需要返回”正确的结果“,有两种方法:
  • 在脚本中引入fromfutureimport division

        >>> from __future__ import division        >>> 81/82        0.98780487804878048
  • 将除数或者被除数转换为浮点数

        >>> 81.0/82        0.98780487804878048        >>> 81/82.0        0.98780487804878048

math.floor 和 math.trunc的官方不同版本的介绍如下:

math.floor: 
    python2.7:  Return the floor of x as a float, the largest integer value less than or equal to x.
    python3.5:  Return the floor of x, the largest integer less than or equal to x. If x is not a float, delegates to x.__floor__(), which should return an Integral value.

math.trunc:
    python2.7:  Return the Real value x truncated to an Integral (usually a long integer). Uses the __trunc__ method.
    python3.5:  Return the Real value x truncated to an Integral (usually an integer). Delegates to x.__trunc__().


math.ceil:
    python2.7:  Return the ceiling of x as a float, the smallest integer value greater than or equal to x.
    python3.5:  Return the ceiling of x, the smallest integer greater than or equal to x. If x is not a float, delegates to x.__ceil__(), which should return an Integral value.

先上具体的例子:

脚本中附加了math.ceil函数(和math.floor对立)

root@pts/4 $ cat python_math_floor_and_trunc.py
#!/usr/bin/env pyton
#-*- codingL utf-8 -*-


import math

a = 3
b = 3.12
c = 3.67

print('-'*20+'a = 3; b = 3.12; c = 3.67'+'-'*20)
print('-'*20+'math.ceil a b c'+'-'*20)
print(math.ceil(a))
print(math.ceil(b))
print(math.ceil(c))

print('-'*20+'math.floor a b c'+'-'*20)
print(math.floor(a))
print(math.floor(b))
print(math.floor(c))


print('-'*20+'math.trunc a b c'+'-'*20)
print(math.trunc(a))
print(math.trunc(b))
print(math.trunc(c))

在Python2.7下的运行结果是:

root@pts/4 $ python python_math_floor_and_trunc.py
--------------------a = 3; b = 3.12; c = 3.67--------------------
--------------------math.ceil a b c--------------------
3.0
4.0
4.0
--------------------math.floor a b c--------------------
3.0
3.0
3.0
--------------------math.trunc a b c--------------------
3
3
3

在Python3.5下的运行结果是:

root@pts/5 $ python python_math_floor_and_trunc.py
--------------------a = 3; b = 3.12; c = 3.67--------------------
--------------------math.ceil a b c--------------------
3
4
4
--------------------math.floor a b c--------------------
3
3
3
--------------------math.trunc a b c--------------------
3
3
3

总结来说:
    math.trunc 不管是在Python2.7或者是Python3.5版本中最终的结果都是`截断`之后的`整数`

    math.ceil/math.floor 在Python2.7版本返回值是`浮点数`;在python3.5版本是`整数`
    math.ceil 是返回 大于或者等于当前值的`最小整数`
    math.floor 是返回 小于或者等于当前值的`最大整数`

python的字符串换行符:\n

刚才提到,我们可以对字符串进行换行,事实上,python还为我们提供了多行换行,
使用'''...'''或者"""..."""都可以进行多行换行,...代表的是提示符,
我们先来看看在python交互式环境下的写法

图片 4

gif.gif

如果我们需要在 .py中怎么写呢?

print('''I
love
python''')

或者

print("""I
love
python""")
print 500/1000

输出结果:

在python3中不会出现这种问题:

如下面的例子:

    Python 3.4.5 (default, Jun  1 2017, 13:52:39)     [GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux    Type "help", "copyright", "credits" or "license" for more information.    >>> 81/82    0.9878048780487805

python的除法

  • 使用 /, 结果是浮点型精确值

1 / 2 = 0.5

3 / 2 = 1.5

10 / 3 = 3.3333333333333335
  • 使用//, 也称“地板除”,你可以简单理解为swift中的取整

1 // 2 = 0

3 // 2 = 1

10 // 3 = 3
  • 取余,使用%

3 % 2 = 1

10 % 3 = 1

5 % 3 = 2
  • 内置除法divmod, 输出(取整结果,取余结果)

divmod(3, 4) = (0, 3)

divmod(5, 3) = (1, 2)

divmod(10, 3) = (3, 1)

python2结果:取整数部分,小数并没有保留

2.3333333333

0

Process finished with exit code 0

 

python3:

print 500/1000

python3结果:得到真实结果,小数保留

0.5

Process finished with exit code 0

 

那么,如果python2想保留小数部分,要怎么做呢?

只需要增加一个导入包.就可以了.并不需要其它操作

from __future__ import division #用于/相除的时候,保留真实结果.小数

 

增加导入包后的,python2操作:

#coding:utf-8
from __future__ import division

print 500/1000

结果:

0.5

Process finished with exit code 0

 

还有另一种方式.将除数或被除数两个其它至少一个转换成float型:

print float(500)/1000

结果:

0.5

Process finished with exit code 0

 

 

 

 

G

M

T

 

Detect language Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bengali Bosnian Bulgarian Catalan Cebuano Chichewa Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hausa Hebrew Hindi Hmong Hungarian Icelandic Igbo Indonesian Irish Italian Japanese Javanese Kannada Kazakh Khmer Korean Lao Latin Latvian Lithuanian Macedonian Malagasy Malay Malayalam Maltese Maori Marathi Mongolian Myanmar (Burmese) Nepali Norwegian Persian Polish Portuguese Punjabi Romanian Russian Serbian Sesotho Sinhala Slovak Slovenian Somali Spanish Sundanese Swahili Swedish Tajik Tamil Telugu Thai Turkish Ukrainian Urdu Uzbek Vietnamese Welsh Yiddish Yoruba Zulu   Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bengali Bosnian Bulgarian Catalan Cebuano Chichewa Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hausa Hebrew Hindi Hmong Hungarian Icelandic Igbo Indonesian Irish Italian Japanese Javanese Kannada Kazakh Khmer Korean Lao Latin Latvian Lithuanian Macedonian Malagasy Malay Malayalam Maltese Maori Marathi Mongolian Myanmar (Burmese) Nepali Norwegian Persian Polish Portuguese Punjabi Romanian Russian Serbian Sesotho Sinhala Slovak Slovenian Somali Spanish Sundanese Swahili Swedish Tajik Tamil Telugu Thai Turkish Ukrainian Urdu Uzbek Vietnamese Welsh Yiddish Yoruba Zulu          

 

 

 

Text-to-speech function is limited to 200 characters

 

  Options : History : Feedback : Donate Close

相关文章