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) 将值转换为字符串
Python基础教程-第一章-变量、函数、字符串的更多相关文章
- 村田噪声抑制基础教程-第一章 需要EMI静噪滤波器的原因
1-1. 简介 EMI静噪滤波器 (EMIFIL®) 是为电子设备提供电磁噪声抑制的电子元件,配合屏蔽罩和其他保护装置一起使用.这种滤波器仅从通过连线传导的电流中提取并移除引起电磁噪声的元件.第1章说 ...
- python教程1:Python基础之数据类型和变量、字符串和编码
视频链接:http://www.bilibili.com/video/av10730372/ 我是在Linux下玩python的,Linux下默认安装python,直接打个pyhon3就好了,pyth ...
- python 机器学习基础教程——第一章,引言
https://www.cnblogs.com/HolyShine/p/10819831.html # from sklearn.datasets import load_iris import nu ...
- python基础教程-第二章-列表和元组
本章将引入一个新的概念,:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在 一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构 ...
- 《Python CookBook2》 第一章 文本 - 过滤字符串中不属于指定集合的字符 && 检查一个字符串是文本还是二进制
过滤字符串中不属于指定集合的字符 任务: 给定一个需要保留的字符串的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字符集合中的元素. 解决方案: impor ...
- 《Python CookBook2》 第一章 文本 - 检查字符串中是否包含某字符集合中的字符 && 简化字符串的translate方法的使用
检查字符串中是否包含某字符集合中的字符 任务: 检查字符串中是否出现了某个字符集合中的字符 解决方案: 方案一: import itertools def containAny(seq,aset): ...
- 《Python CookBook2》 第一章 文本 - 去字符串两端的空格 && 合并字符串 && 将字符串逐字符或者逐词反转
去字符串两端的空格 任务: 获得一个开头和末尾都没有多余空格的字符串. 解决方案: 字符串对象的lstrip.rstrip和strip 方法正是为这种任务而设计的.这几个方法都不需要参数,它们会直接返 ...
- python自学之第一章 —— 变量
1.变量的命名(): (1).可以包含数字.字母.下划线‘_’,但只能以字母和下划线‘_’开头,不能以数字开头! (2).变量的命名不能包含空格. (3).不能将python中的关键字(reserve ...
- Python基础(数据类型与变量、字符串和编码)
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # name = 200 # if name > 100: # print(name,'大于100' ...
随机推荐
- Java条件编译
学习过C语言或者C++语言的同学都知道它们支持条件编译,那么今天我们来学习下在Java语言中如何实现条件编译.Java语言本身没有提供条件编译,但是Java编译器对.java文件编译为.class文件 ...
- Python的文本数据
字符串的一些方法! 1.text.endswith(".jpg") 如果字符串是以给定子字符串结尾的,就返回值True. 2. text.upper(): ...
- [Effective JavaScript 笔记]第68条:使用promise模式清洁异步逻辑
构建异步API的一种流行的替代方式是使用promise(有时也被称为deferred或future)模式.已经在本章讨论过的异步API使用回调函数作为参数. downloadAsync('file.t ...
- phpcms V9 数据模型基类
在学习<phpcms V9首页模板文件解析>的第七步,我们看到content_model类,文件路径:phpcms/model/content_model.class.php 从代码中,可 ...
- tomcat部署https
在server.xml配置文件中增加证书位置跟密码: <Connector port="443" protocol="org.apache.coyote.http1 ...
- 开始跟踪Redis啦,开帖
随着NoSql的流行,对这方面的产品开始关注起来,之前一直只是看看.从昨天开始决定把Redis的实现机制啃下来,毕竟代码量也就2W行. 每天花时间看看,记录下成果. here we go.
- Codeforces 749D:Leaving Auction(set+二分)
http://codeforces.com/contest/749/problem/D 题意:有几个人在拍卖场竞价,一共有n次喊价,有q个询问,每一个询问有一个num,接下来num个人从这次拍卖中除去 ...
- Unity3D The Blacksmith Demo部分内容学习
1.Plane Reflection 平面反射 在角色包的例子里可以看到,该脚本使用一个特定的相机渲染反射内容 官方介绍说这是优于反射探头的一种做法 2.HairRenderer 毛发渲染器 单独写的 ...
- 用jxl导出数据到excel
需要jxl.jar 测试结果没问题,代码: package com; import java.io.File; import java.io.IOException; import java.util ...
- [Python]处理windows下多级目录文件,上传到Linux服务器
#-*- coding: utf-8 -*- __author__ = 'tsbc' import sys reload(sys) sys.setdefaultencoding('utf-8') im ...