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)              将值转换为字符串

    

Python基础教程-第一章-变量、函数、字符串的更多相关文章

  1. 村田噪声抑制基础教程-第一章 需要EMI静噪滤波器的原因

    1-1. 简介 EMI静噪滤波器 (EMIFIL®) 是为电子设备提供电磁噪声抑制的电子元件,配合屏蔽罩和其他保护装置一起使用.这种滤波器仅从通过连线传导的电流中提取并移除引起电磁噪声的元件.第1章说 ...

  2. python教程1:Python基础之数据类型和变量、字符串和编码

    视频链接:http://www.bilibili.com/video/av10730372/ 我是在Linux下玩python的,Linux下默认安装python,直接打个pyhon3就好了,pyth ...

  3. python 机器学习基础教程——第一章,引言

    https://www.cnblogs.com/HolyShine/p/10819831.html # from sklearn.datasets import load_iris import nu ...

  4. python基础教程-第二章-列表和元组

    本章将引入一个新的概念,:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在 一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构 ...

  5. 《Python CookBook2》 第一章 文本 - 过滤字符串中不属于指定集合的字符 && 检查一个字符串是文本还是二进制

    过滤字符串中不属于指定集合的字符 任务: 给定一个需要保留的字符串的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字符集合中的元素. 解决方案: impor ...

  6. 《Python CookBook2》 第一章 文本 - 检查字符串中是否包含某字符集合中的字符 && 简化字符串的translate方法的使用

    检查字符串中是否包含某字符集合中的字符  任务: 检查字符串中是否出现了某个字符集合中的字符 解决方案: 方案一: import itertools def containAny(seq,aset): ...

  7. 《Python CookBook2》 第一章 文本 - 去字符串两端的空格 && 合并字符串 && 将字符串逐字符或者逐词反转

    去字符串两端的空格 任务: 获得一个开头和末尾都没有多余空格的字符串. 解决方案: 字符串对象的lstrip.rstrip和strip 方法正是为这种任务而设计的.这几个方法都不需要参数,它们会直接返 ...

  8. python自学之第一章 —— 变量

    1.变量的命名(): (1).可以包含数字.字母.下划线‘_’,但只能以字母和下划线‘_’开头,不能以数字开头! (2).变量的命名不能包含空格. (3).不能将python中的关键字(reserve ...

  9. Python基础(数据类型与变量、字符串和编码)

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- # name = 200 # if name > 100: # print(name,'大于100' ...

随机推荐

  1. sql 表分区使用

    如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了. 1.数据库中某个表中的数据很多.很多是什么概念?一万条?两万条?还是十万条.一百万条?这个,我觉得是仁者见仁.智者见智的 ...

  2. flask学习资源

    1.flask快速入门(视频) http://www.pythoner.cn/course/topic/flask-web-development/ 2.flask教程,开源中国 http://www ...

  3. 使用Redis分布式队列

    1.这是处理异常的类 public class MyExceptionAttribute:HandleErrorAttribute { //public static Queue<Excepti ...

  4. windows系统上安装与使用Android NDK r5 (转)

    windows系统上安装与使用Android NDK r5  很早就听说了android的NDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单 ...

  5. :only-child

    如果某个元素是父元素中唯一的子元素,那将会被匹配 如果父元素中含有其他元素,那将不会被匹配.(注:这里的其他元素并不包含文本节点,如:<p><img/>图片</p> ...

  6. Git错误non-fast-forward后的冲突解决

    Git错误non-fast-forward后的冲突解决当要push代码到git时,出现提示: error:failed to push some refs to ... Dealing with “n ...

  7. hibernate检索方式(HQL 检索方式,QBC 检索方式,本地 SQL 检索方式)

    hibernate有五种检索方式,这儿用 单向的一对多的映射关系 例子,这儿有后三种的方式: 导航对象图检索方式: 根据已经加载的对象导航到其他对象 OID 检索方式: 按照对象的 OID 来检索对象 ...

  8. Lost Cows(线段树 POJ2182)

    Lost Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10354 Accepted: 6631 Descriptio ...

  9. Response.Clear()和Response.ClearContent()区别

    Response.Clear()方法 Clear方法删除所有缓存中的HTML输出.但此方法只删除Response显示输入信息,不删除Response头信息. Response.ClearContent ...

  10. 【web必知必会】——图解HTTP(上)

    本篇总结关于http的相关知识,主要内容参考如下导图: 主要讲解的内容有: 1 URL与URI的区别. 2 请求报文与相应报文的内容. 3 GET与POST的区别. 4 http的cookie.持久化 ...