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. RCNN--对象检测的又一伟大跨越

    最近在实验室和师兄师姐在做有关RCNN的研究,发现这里面坑很深呀,在网上找了一个大牛的博客,准备下来继追OPENCV同时,再来追一个RCNN的学习笔记的博文,博文地址如下:http://blog.cs ...

  2. python学习笔记系列----(二)控制流

    实际开始看这一章节的时候,觉得都不想看了,因为每种语言都会有控制流,感觉好像我不看就会了似的.快速预览的时候,发现了原来还包含了对函数定义的一些描述,重点讲了3种函数形参的定义方法,章节的最后讲述了P ...

  3. linux服务器性能优化

    1.这里的吞吐率特指Web服务器单位时间内处理的请求.       2.压力测试的前提:1>并发用户数 2>总请求数 3>请求资源描述       3.用户平均请求等待时间主要用户衡 ...

  4. android架构

    周日没事,简单总结了一下Android开发中使用到的知识,以脑图的形式呈现.  

  5. MVC模型的理解

  6. 【转】本地存储-localStroage/sessionStorage存储

    原文地址:[js学习笔记-103]----本地存储-localStroage/sessionStorage存储 客户端存储 l  WEB存储 web存储最初作为html5的一部分被定义成API形式,但 ...

  7. angularJS ng-grid 配置

    以下是按我的需求修改的 简单的demo  可以自己扩展 HTML: <!DOCTYPE html> <html class="no-js" ng-app=&quo ...

  8. 如何面试有2年java工作经验的应聘人员

    1.什么是事务控制?答:事务控制就是将一系列操作当成一个不可拆分的逻辑单元,保证这些操作要么都成功,要么都失败.在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序.事务是恢复和并发 ...

  9. Good Firewall(字典树 HDU4760)

    Good Firewall Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...

  10. python除法

    1. >>> from __future__ import division >>> 2/3 0.6666666666666666 操作数为何种数值类型将影响结果 ...