初心大陆-----python宝典 第二章
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初心大陆-----python宝典 第二章相关的知识,希望对你有一定的参考价值。
模块,上次在第一章中已经实现了一些功能,将原本32.9岁的人变成了32岁,当然,人家确实是没有到33岁,这么说也不太好,怎么实现的。
import math 到入模块
int(math.floor(32.9)) 将年龄为32.9的人变成了32岁
32
继续往下看:
哎,小P老师,为啥我每次要调用函数的时候都要写上那个模块的函数的名称呀,真实麻烦呀,突然感觉我好懒,突然天空中有了明显的波动,飘下了一段神秘代码。
>>> from math import sqrt
>>> sqrt(9)
3.0
>>>
咦真的可以,sqrt看来就是计算平方根的了。有备注,噢噢噢,原来只能是非负实数,就是不能计算为负数的实数呗。
接着看。有提示:
>>> foo=math.sqrt
>>> foo(9)
3.0
>>>
我靠还有这么方便的用法,不错。
看来真是数中自有黄金屋,书中自有颜如玉
!!!半天不说话,小P老师,真的不能计算为负数的平方根吗?
感觉又被人鄙视的感觉,继续往下看,
又出来个模块,叫cmath 、,这是啥,
试试再说
>>> import cmath
>>> cmath.sqrt(-1)
1j
>>>
真是太奇怪了,2个模块都调用sqrt,那我命名时,出来的该是什么。
>>> from cmath import sqrt
>>> sqrt(9)
(3+0j)
我刚刚模块定义的sqrt失效了被替换了,有提示:除非真的需要使用from .. import ..方式,否则应该坚持使用普通的import.
下面,我们将要接触新的知识,拥有一个可执行的脚本,
想要使用脚本就需要在首行添加#!/usr/bin/env python即可
赶紧试验下。
cat a.py
#!/usr/bin/env python
print 1 + 2 * 4
想要执行脚本就必须要使脚本拥有权限,
下面小P老师给我讲了个有意思的东西,在另外一个平行空间也可以操作初心大陆,
下载windows,python的2.7版本https://www.python.org/downloads/release/python-2711/
也可以操作,效果是一样的,并且可以直接执行脚本
突然发现通过windows版python(dos)写代码也很爽呀
哈哈,
进入平行空间啦,
在脚本首行前面加#!叫做pound bang 或者shebang,在其后家还是那个用于解释脚本的程序绝对路径,
,感觉好麻烦,记不住呀,容易忘,有没有通用一点的。
接着看吧。
咦!!!!!
只要将#!/usr/bin/env python不管python二进制文件在哪里都能找得到路径呀,太好了。妈妈再也不用担心我健忘了。
在初心大陆的话执行脚本一定要赋予脚本权限chmod 777 hello.py
./hello.py就能执行了。
不扯了,接着看啦。
注释?(#)在python中有些特殊,他右边一切都会被忽略。
什么情况,注释居然是神器,我得到神器啦。属性好牛逼。
只要在前面加个#无视后面任意东西。
在配合我写程序时,注释可以更加好的让我回顾。
在初心大陆里面有一些字符串是有特殊含义的。
例如:
>>> "let‘s go"
"let‘s go"
>>> ‘let‘s go‘
SyntaxError: invalid syntax
>>>
很明显可以看出let后面的撇号阻止go后面的撇号导致执行失败,那么怎样才能好用呢。
接着看看了。
原来有转义符号呀。
我要试试:
>>> ‘let\‘s go‘
"let‘s go"
>>>
哇,真的可以呦,那么是不是所有的字符都可以转义呢。
我试验下吧。
>>> "let\"s go"
‘let"s go‘
>>>
这样也可以呦,不错,
>>> 1000000L
1000000L
>>> print 10000000L
10000000
>>>
这的不错,我要抓紧学习啦,不过为什么print打印出来的和我想要的不一样呢,初心大陆又闹情绪了。
有备注:
>>> print repr("Hello, world!")
‘Hello, world!‘
>>> print repr(10000L)
10000L
>>> print str("Hello, world!")
Hello, world!
>>> print str(10000L)
10000
>>>
str和repr是可以进行切换的,str是把值转化为合理形式的字符串,而repr会创建一个字符串。
>>> print "The temperature is " + temp
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
print "The temperature is " + temp
TypeError: cannot concatenate ‘str‘ and ‘int‘ objects
>>> print "The temperature is " + `temp`
The temperature is 42
>>>
第一个执行失败,第二个执行成功,``反引号成功的原因是将temp的值成功转换为了字符串42,
>>> print "The temperature is " + repr(temp)
The temperature is 42
使用repr也可以实现一样的效果,
>>> print "The temperature is " + str(temp)
The temperature is 42
str也可以实现。。多种方法都行。
在2.7版本中input和raw_input还是有区别的,我们看下例子吧:
>>> input("Enter a number: ")
Enter a number: 3
3
>>> raw_input("Enter a number: ")
Enter a number: 3
‘3‘
>>>
作为交互来使用时,如果输入的是字符串那么就会报错了
>>> input("Enter a number: ")
Enter a number: fff
Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
input("Enter a number: ")
File "<string>", line 1, in <module>
NameError: name ‘fff‘ is not defined
>>>
但是用raw_input就不会。所以在2.7版本中使用raw_input
>>> raw_input("Enter a number: ")
Enter a number: ff
‘ff‘
>>>
小P老师我能写长一点的内容和初心大陆沟通吗?
。。。。还是继续看书吧:
长字符串,有多长呢,我要试试貌似和我刚刚说的那么吻合呢
>>> ‘‘‘
Hello chuxin
you are beautiful
‘‘‘
‘\nHello chuxin\n\tyou are beautiful\n\t‘
>>>
>>> print "niao123\n\n\n"
niao123
>>>
看来\n就是换行符的意思。
开会耽误了。明天继续吧。
以上是关于初心大陆-----python宝典 第二章的主要内容,如果未能解决你的问题,请参考以下文章