Python基础教程-第一章-变量、函数、字符串

1.1变量

    变量基本上就是代表(或者引用)某个值的名字,举例来说,如果希望用x代表3,只需要执行下面的语句即可:

    >>>x = 3

    这样的操作称为赋值(assignment),值3赋给了变量x。另一个说法就是:将变量x绑定到了值3上面,在变量被赋值以后,就可以在表达式中使用变量:

    >>>x*2

    >>>6

1.2语句

    语句和表达式之间有什么区别呢?表达式是某事,而语句是做某事(换句话说就是告诉计算机做什么)。比如2*2是4,而print(2*2)打印4.那么区别在哪呢?请看下面吗的例子:

    >>>2*2

    >>>4

    >>>print(2*2)

    >>>4

    如果在交互式解释器中执行上述两行代码,结果都是一样的,但这只是因为解释器总是吧所有表达式的值都打印出来而已(都使用了相同的repr函数对结果进行呈现)

    语句和表达式之间的区别在赋值时会表现的更明显一些,因为语句不是表达式,所以没有值可供交互式解释器打印出来:

    >>>x = 3

    >>>

    可以看到,下面立刻出现了新的提示符。但是有些东西已经变化了,x现在绑定给了值3.

    这也是语句提醒的一般定义:它改变了事物,比如,赋值语句改变了变量,print语句改变了屏幕显示的内容

1.3 获取用户输入

    我们在编写程序的时候,并不需要知道变量的值是多少。当然,解释器最终还是得知道变量的值。那么,不赋值优惠如何呢?解释器只知道我们告诉它的内容,对吧?不一定。

    事实上,我们通常写程序让别人用,我们无法预测用户会给程序提供什么值。那么,看看非常有用的input函数吧

    >>>x = input('x')

    >>>x:34

    >>>print(x)

    >>>34

1.4 函数

    一般情况下使用幂运算符(**)来计算乘方,事实上,可以使用函数来代替运算符,这个函数就是pow:

    >>>2**3

    >>>8

    >>>pow(2,3)

    >>>8

    函数就像可以用来实现特定功能的小程序一样。Python的很多函数都能做很奇妙的事情。事实上,也可以自己定义函数,因此,我们通常会把pow等标准函数称为内建函数

    上例中我使用函数的方式叫做调用函数,可以给他提供参数(本例中的2和3),他会返回值给用户。因为他返回了值,函数调用也可以简单的看做另一类表达式。

    还有很多像这样的内建函数可以用于数值表达式。比如使用abs函数可以得到数的绝对值,round函数则会把浮点数四舍五入为 最接近的整数值:

    >>>abs(-10)

    >>>10

    >>>1/2

    >>>0

    >>>round(1.0/2.0)

    >>>1.0

    注意最后两个表达式的区别。整数除法总是会戒除结果的小数部分,而round函数则会将结果四舍五入为最接近的整数。但是结果想将给定的数值向下取整为某个特定的整数呢?比如一个人的年龄是32.9岁,但是想把他取整为32,因为他还没有到33岁。python有实现这样功能的函数(称为floor),但是不能直接使用它。与其他很多有用的函数一样,你可以在某个模块中找到floor函数。

1.5 模块

    可以把模块想象成导入到python以增强其功能扩展。如要使用特殊命令import来导入模块。前面内容提到的floor函数就在名为math的模中

    >>>import

    >>>math.floor(32.9)

    >>>32.0

    如果想把年龄转换为整数(32)而不是浮点数(32.0),可以使用int函数

    >>>int(math.floor(32.9))

    >>>32

    在确定自己不会导入多个同名函数(从不同模块导入)的情况下,你可能不希望再每次调用函数的时候,都要写上模块的名字,那么,可以使用import命令的另一种形式:

    >>>from math import sqrt

    >>>sqrt(9)

    >>>3.0

    #科普:sqrt为返回数字x的平方根。

  提示:事实上,可以使用变量来引用函数(或者python之中大多数的对象)比如,通过foo=math.sqrt进行赋值,然后就可以使用foo来计算平方根了:foo(4)的结果为2.0

    在使用了“from模块import函数”这种形式的import命令之后,就可以直接使用函数,而不需要模块名作为前缀。

1.6 字符串

    1.6.1对字符串中的引号进行转义:

    >>>'Let\'s go!'

    >>>"Let's go!"

    1.6.2 拼接字符串

    >>>"Let's say" ' "Hello,world!"'

    >>>'Let\'s say "Hello,world!"'

    我只是用一个接着另一个的方式写了两个字符串,python就会自动拼接他们(将他们合为一个字符串)。这种机制用的不多,有时却非常有用。不过他只是在同事写下两个字符串时有效。而且要一个紧接着另一个:

    >>>x = 'hello,'

    >>>y = 'world!'

    >>>x + y

    >>>''hello,world!"

    1.6.3 字符串表示,str 和repr

    通过前面的例子读者们可能注意到了,所有通过python打印的字符串还是被引号括起来的,这是因为python打印值的时候回保持该值在python代码中的状态,而不是你希望用户所看到的状态,如果使用python语句,结果就不一样了:

    >>>'hello,world!'

    >>>'hello,world!'

    >>>print('hello,world!')

    >>>hello,world!

    我们在这里讨论的实际上是指被转换为字符串的两种机制。可以通过以下两个函数来使用这两种机制:一个事str函数,它会把值转换为合理性是的字符串,以便用户可以理解;而repr会创建一个字符串,它以合法的python表达式的形式来表示值。下面是一些例子:

    >>>print repr('hello,world!')

    >>>'hello,world!'

    >>>print str('hello,world!')

    >>>hello,world

    repr(x)的功能也可以用`x`实现(注意:·是反引号,而不是单引号).如果希望打印一个包含数字的句子,那么反引号就很有用了。比如:

    >>>temp = 42

    >>>print('value is ' + temp)

    >>>Traceback (most recent call last):

    >>>File "<stdin>", line 1, in <module>
    >>>TypeError: cannot concatenate 'str' and 'int' objects

    >>>print('value is ' + `temp`)

    >>>value is 42

    第一个print语句并不能工作,那是因为不可以将字符串和数字进行相加,而第二个则可以正常工作,因为我们已经通过反引号将temp的值转换为字符串‘42’了。

  简而言之,str,repr和反引号是将python值转换为字符串的3中方法。函数sgtr让字符串更容易阅读,而repr(和反引号)则把结果字符串转换为合法的python表达式。

1.7 本章的新函数:

    函数                  描述

   abs(number)             返回数字的绝对值

   cmach.sqrt(number)         返回平方根,也可以用户负数

   float(object)            将字符串和数字换换位浮点数

     help()               提供交互式帮助

   input(prompt)            获取用户输入

   int(object)              将字符串和数字转换为整数

   long(object)               将字符串和数字转换为长整型数

   math.ceil(number)           返回数的上入整数,返回值的类型为浮点数

     math.floor(number)           返回数的下舍整数,返回值的类型为浮点数

   math.sqrt(number)          返回平方根,不适用于负数

   pow(x,y,[,z])             返回x的y次幂(所得结果对z取模)

     repr(prompt)            返回值的字符串表示形式

   round(number[.ndigits])       根据给定的精度对数字进行四舍五入

     str(object)              将值转换为字符串

    

上一篇:Android(Lollipop/5.0) Material Design(六) 使用图像


下一篇:Canvas 渲染模式