Python第三章-输入输出和运算符
输入输出和运算符
一、输入和输出
1.1 输出
`print()`函数用来向终端输出数据(其实也可以向文件输出数据,后面再讲)
可以传递多个参数,则输出的时候 python 会把多个参数的值用空格隔开。
print("hell", "world", "你好")
print()
函数默认会在末尾自动添加一个\n
。如果不想换行则可以传递一个参数end=""
print("hell", "world", "你好", end="")
print("哈哈哈")
1.2 输入
input()
可以获取用户在键盘的输入,输入的数据都会成为字符串。
name = input() # 把从键盘输入的数据存储到变量 name 中
print("你的名字是:", name)
如果在用户输入前给用户一个提示语,可以在 input
中传入参数,则 python
会把传入的参数先使用 print()
函数输出,然后再等待用户输入数据。
name = input("请输入你的姓名:")
print("你的名字是:", name)
二、运算符和表达式
2.1 表达式
我们前面编写的大多数代码都包含了表达式(Expressions
)。 比如 2 + 3
就是一个表达式。
表达式可以可以进一步拆分为运算符(Operators)和操作数(Operands)
例如:
表达式:2 + 3 * 4
其中:
+、*
就是运算符
2、3、4
就是操作数
python 提供了各种各样的运算符。
任何的数据类型都可以作为操作数。
2.2 运算符
2.2.1 算术运算符
加法:+
当 +
的两端都是数字时,则就是数学中的加法运算。
当 +
两端都是字符串时,则就是把两端的字符串连接起来。
注意:
- 布尔值
True
可以作为数字1
来使用,False
可以作为数字0
,所以他们可以和数字相加。(学完面向对象你就是清楚, 其实bool
继承自int
) - python 不允许字符串和数字相加
add1 = 3 + 4
print(add1) # 7
add2 = 3 + True
print(add2) # 4
add3 = 3 + False
print(add3) # 3
add4 = True * 0
print(add4) # 0
# add5 = "a" + 3 # 错误!不允许字符串和数字相加
减法:-
减法只能用于操作数字。
乘法:*
得到两个数的乘积。如果有一个是字符串一个是整数,则得到的重复整数次的字符串。
result1 = 3 * 4.1
print(result1)
result2 = 2 * "Hello "
print(result2)
result3 = "world " * 3
print(result3)
幂:**
x ** y
返回 x
的 y
次方 x^y
除法:/
/
就是指的数学上的除法(也叫真除法),总能得到浮点数的值。和其他语言差别较大。
result1 = 10 / 2
print(result1)
result2 = 10 / 3
print(result2)
result3 = -11.3 / 3
print(result3)
整除(经典除法)://
整除一般用来操作两个整数。(虽然也可以操作浮点数,但是没人这么做)
result1 = 10 // 2
print(result1)
result2 = 10 // 3
print(result2)
result3 = -10 // 3
print(result3)
result4 = 10 // -3
print(result4)
取余(取模):%
返回除法运算后的余数。一般用于整数取模。浮点数也可以用
result1 = 10 % 2
print(result1)
result2 = 10 % -3 # 余数的符号与除数的符号相同。
print(result2)
result3 = -10 % 3
print(result3)
result4 = -2.4 % 2 # 取模一般用于整数运算。浮点数意义不大
print(result4)
2.2.2 赋值运算符
=
赋值运算符最常见的。
还有一种叫做复合赋值运算符的。
+=
a = 3
a += 2 # 等价于 a = a + 2
print(a) # 5
算术运算符都有对应的复合赋值运算符。
2.2.3 比较运算符
比较两个操作数大小关系。
- 如果是两个数字则比较他们数学上的大小。
- 如果是两个字符串比较,则是比较的他们在码表中的顺序。先比较第一个字母,如果相等再比较第二个...
- 如果有布尔值参与比较,则
True
做1
来用,False
做0
来用。 - 数字和字符串不能进行比较!
- 比较运算符计算的结果一定是布尔值。
比较运算符包括以下运算符:
> 、< 、>=、<=、==、!=
其中: ==
判断两个操作数是否相等、!=
用来判断两个操作数是否不等。
r1 = 3 > 2
print(r1) # True
r2 = "ab" > "b1"
print(r2) # False
r3 = True > False
print(r3) # True
r4 = 1 == True
print(r4) # True
注意:
python 中的比较运算符与其他语言最大的一个不同点是,python 中的比较运算符可以组成链接。只有每个运算符计算的结果都是 True
,最终的结果才会为 True
。否则就是 False
r1 = 5 > 4 > 3
print(r1) # True 因为 5 大于 4是 True,并且 4 大于 3 是 True
r2 = 5 > 4 == (2 + 1)
print(r2) # False 因为 5 大于 4 是 True,但是 4 == 2 + 1 是 False
2.2.4 逻辑运算符
python 共支持 3 种逻辑运算符。
and、or、not
(与,或,非)
逻辑非:not
r1 = not True
print(r1) # False
r2 = not False
print(r2) # True
注意:
- 对
not
来说,结果总是True 或 False
,但是操作数可以是任意类型的。 - 内容为空的数据,会作为
False
来对待,所以not
之后会成为True
r1 = not True
print(r1) # False
r2 = not False
print(r2) # True
print(not 1) # False
print(not 0) # True
print(not "") # True
print(not []) # True
print(not ()) # True
print(not {}) # True
逻辑与:and
有一个是 False
结果就是 False
由于任何类型都可以参与运算,所以更加准确的规则应该是:
如果第一个是 False
或者相当于 False
,则结果就是第一个数据,否则最终的结果就应该是第二个数据。
print(False and True) # False
print(False and False) # Fasle
print(0 and True) # 0
print([] and False) # []
print([1] and 20) # 20
print("a" and [])
and
具有短路的效果,也就是说,如果第一个表达式是 False
或者相当于 False
, 则不会再去判断第二个表达式。
print(True and print("abc"))
print(False and print("bcd")) # 由于第一个表达式是 False,所以不会计算第二个表达式的值
备注:是 False
的7种数据
False、None、0、""、[]、()、{}
逻辑或:or
有一个是 True
结果就是 True
由于任何类型都可以参与运算,所以更加准确的规则应该是:
如果第一个是 True
或者相当于 True
,则结果就是第一个数据,否则最终的结果就应该是第二个数据。
print(True or False)
print(False or True)
print(False or False)
print(1 or False)
print("" or 100)
print([] or (2,))
or
也具有短路的效果,也就是说,如果第一个表达式是 True
或者相当于 True
, 则不会再去判断第二个表达式。
三、运算符的优先级
lambda |
Lambda expression |
---|---|
if – else |
Conditional expression |
or |
Boolean OR |
and |
Boolean AND |
not x |
Boolean NOT |
in , not in , is , is not , < , <= , > , >= , != , == |
Comparisons, including membership tests and identity tests |
| |
Bitwise OR |
^ |
Bitwise XOR |
& |
Bitwise AND |
<< , >> |
Shifts |
+ , - |
Addition and subtraction |
* , @ , / , // , % |
Multiplication, matrix multiplication division, remainder [5] |
+x , -x , ~x |
Positive, negative, bitwise NOT |
** |
Exponentiation [6] |
await x |
Await expression |
x[index] , x[index:index] , x(arguments...) , x.attribute |
Subscription, slicing, call, attribute reference |
(expressions...) , [expressions...] , {key: value...} , {expressions...} |
Binding or tuple display, list display, dictionary display, set display |
优先级是从上往下越来越高。
实际使用的时候,对于不是很明确的地方,建议添加圆括号(()
)来更改优先级。从而可读性更强。
比如:虽然你知道 *
的优先级高于 +
,但是 代码1 明显要好于代码 2
代码1:
2 + (3 * 4)
代码2:
2 + 3 * 4
但是括号的使用也不要滥用。比如下面的就有点滥用了。最外面的完全不需要。
(2 + (3 * 4))
2.2.7 与数字类型相关的几个内置函数
abs(x)
返回 x
的绝对值
参数 x
必须是整数或浮点数
int(x)
把 x
转换为整数
x
可以说浮点数和整数。如果传入的是字符串,则字符串中的字符必须是整数
float(x)
把 x
转换为 float
x
可以是浮点数、整数、字符串。
pow(x, y)
等价于 x ** y
print(abs(-20))
print(int(20.3))
print(int("40"))
print(float("20.4"))
Python第三章-输入输出和运算符的更多相关文章
- 疯狂JAVA——第三章 数据类型和运算符
3.1注释 1.单行注释 2.多行注释 3.文档注释——文档注释以斜线后紧跟两个星号(/**)开始,以星号后紧跟一个斜线结束(*/),中间部分都是文档注释,会被提取到API文档中. API文档类似于产 ...
- Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句
第二章 词法结构 一.HTML并不区分大小写(尽管XHTML区分大小写),而javascript区分大小写:在HTML中,这些标签和属性名可以使用大写也可以使用小写,而在javascript中必须小写 ...
- 简学Python第三章__函数式编程、递归、内置函数
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...
- java第二章 变量和运算符
Java 基础应用编程—— 变量和运算符 1.Java程序结构 数据类型:确定要存储在内存中的数据的类型. 变量:是存储数据的基本单元 2.变量的概念 变 ...
- Python第三章-字符串
第三章 字符串 3.1 基本字符串操作 Python的字符串和元组差不多,是不可以进行改变的,如果想改变值,可以尝试list序列化之后在进行修改. { website = 'http://ww ...
- python第三章:循环语句--小白博客
Python条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非 ...
- 2 python第三章文件操作
1.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成立 els ...
- python数据类型、用户交互和运算符
基本数据类型 1.字典dict(dictionary) 能够准确的记录储存的信息 """ 大括号里面 放多个元素 之间用逗号隔开 元素为K:V键表示储存 K相对于V一般表 ...
- Python第三章(北理国家精品课 嵩天等)
一.数字类型及其操作 整数:pow(x,y),想算多大,就算多大:以0b或0B开头表示二进制:以0o或0O开头表示八进制:以0x或0X开头表示十六进制. 浮点数:取值范围-10^308至10^308, ...
随机推荐
- 【简单版】hexo博客搭建流程梳理
前言 本文章会为你梳理一个搭建hexo博客的流程 相关网址: Docs: https://hexo.io/docs/ Themes: https://hexo.io/themes/ 安装hexo 准备 ...
- MYSQL对数据库和表的基本操作
CREATE DATABASE testdb CHARSET=UTF8 创建一个数据库 名字叫做testdb USE testdb; 选择数据库 CREATE TABLE testTable1( ) ...
- 自定义Toast的出现样式
使用下面的方法来获取一个Toast对象: private Toast showShortToast() { if (toast == null) { toast = new Toast(this); ...
- poi简介
POI简介(用于操作Excel) 1 Java Aspose Cells Java Aspose Cells 是一种纯粹的Java授权的Excel API,开发和供应商Aspose发布.这个API的最 ...
- 正式学习MVC 05
1.剃须刀模板razor的使用 1)混编 循环语法 @model List<MVCStudy.Models.Student> @{ ViewBag.Title = "List&q ...
- 小程序打开web-view传参数注意事项
通过URL传参数过去的参数值建议使用BASE64 加密后传输 (尤其是值含有 ‘中文’,‘符号’,‘http’ 的内容) 试过使用 encodeURI, encodeURLComment ,es ...
- 不一样的ZTree,权限树.js插件
每一个有趣的创新,都源于苦逼的生活. 在最近的工作中,遇到一个做权限管理筛选的需求.简单总结需求:1展示一个组织中的组织结构2通过点击组织结构中的任意一个节点可以向上向下查询对应的组织结构 如果你不想 ...
- notepad++ 字符处理: 字符前后删除 或 删除未包含字符串的行
字符串前后删除 删除str之后的所有字符用,打开替换(Ctrl+H) :str.*$ 删除str之前的所有字符用:^.*str 如果是其他字符就把str替换为其他字符 ---------------- ...
- webapck之多页面打包(常见)
webpack多入口打包 let path = require('path'); elt HtmlWebpackPlugin = require('html-webpack-plugin'); mod ...
- springmvc.xml 中报错:Start state is missing. Add at least one state to the flow
最近一个学弟问我关于整合springMVC和spring出现的配置文件springmvc.xml出现的Start state is missing. Add at least one state to ...