输入输出和运算符

一、输入和输出

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 算术运算符

加法:+

+ 的两端都是数字时,则就是数学中的加法运算。

+ 两端都是字符串时,则就是把两端的字符串连接起来。

注意:

  1. 布尔值 True 可以作为数字 1 来使用, False 可以作为数字 0 ,所以他们可以和数字相加。(学完面向对象你就是清楚, 其实bool继承自int)
  2. 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 返回 xy 次方 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 比较运算符

比较两个操作数大小关系。

  1. 如果是两个数字则比较他们数学上的大小。
  2. 如果是两个字符串比较,则是比较的他们在码表中的顺序。先比较第一个字母,如果相等再比较第二个...
  3. 如果有布尔值参与比较,则 True1 来用,False0 来用。
  4. 数字和字符串不能进行比较!
  5. 比较运算符计算的结果一定是布尔值。

比较运算符包括以下运算符:

> 、< 、>=、<=、==、!=

其中: == 判断两个操作数是否相等、!= 用来判断两个操作数是否不等。

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

注意:

  1. not 来说,结果总是 True 或 False,但是操作数可以是任意类型的。
  2. 内容为空的数据,会作为 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
ifelse 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第三章-输入输出和运算符的更多相关文章

  1. 疯狂JAVA——第三章 数据类型和运算符

    3.1注释 1.单行注释 2.多行注释 3.文档注释——文档注释以斜线后紧跟两个星号(/**)开始,以星号后紧跟一个斜线结束(*/),中间部分都是文档注释,会被提取到API文档中. API文档类似于产 ...

  2. Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句

    第二章 词法结构 一.HTML并不区分大小写(尽管XHTML区分大小写),而javascript区分大小写:在HTML中,这些标签和属性名可以使用大写也可以使用小写,而在javascript中必须小写 ...

  3. 简学Python第三章__函数式编程、递归、内置函数

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  4. java第二章 变量和运算符

      Java 基础应用编程——  变量和运算符 1.Java程序结构          数据类型:确定要存储在内存中的数据的类型.          变量:是存储数据的基本单元 2.变量的概念   变 ...

  5. Python第三章-字符串

    第三章  字符串 3.1 基本字符串操作 Python的字符串和元组差不多,是不可以进行改变的,如果想改变值,可以尝试list序列化之后在进行修改. {    website = 'http://ww ...

  6. python第三章:循环语句--小白博客

    Python条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非 ...

  7. 2 python第三章文件操作

    1.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成立 els ...

  8. python数据类型、用户交互和运算符

    基本数据类型 1.字典dict(dictionary) 能够准确的记录储存的信息 """ 大括号里面 放多个元素 之间用逗号隔开 元素为K:V键表示储存 K相对于V一般表 ...

  9. Python第三章(北理国家精品课 嵩天等)

    一.数字类型及其操作 整数:pow(x,y),想算多大,就算多大:以0b或0B开头表示二进制:以0o或0O开头表示八进制:以0x或0X开头表示十六进制. 浮点数:取值范围-10^308至10^308, ...

随机推荐

  1. 从赴美IPO绝迹 看那些烧成泡沫的互联网企业

    曾经,赴美上市是很多中国企业的终极梦想.然而在当下,随着中概股在美国股市股价的不断走低.中国赴美上市企业私有化速度的加快,大众才发现,原来美国股市并不是那么好混的.但不管怎样,赴美上市始终是一种荣耀. ...

  2. Web Scraper 高级用法——抓取属性信息 | 简易数据分析 16

    这是简易数据分析系列的第 16 篇文章. 这期课程我们讲一个用的较少的 Web Scraper 功能--抓取属性信息. 网页在展示信息的时候,除了我们看到的内容,其实还有很多隐藏的信息.我们拿豆瓣电影 ...

  3. Angular 从入坑到挖坑 - 表单控件概览

    一.Overview angular 入坑记录的笔记第三篇,介绍 angular 中表单控件的相关概念,了解如何在 angular 中创建一个表单,以及如何针对表单控件进行数据校验. 对应官方文档地址 ...

  4. Python中的BeautifulSoup库简要总结

    一.基本元素 BeautifulSoup库是解析.遍历.维护“标签树”的功能库. 引用 from bs4 import BeautifulSoup import bs4 html文档-标签树-Beau ...

  5. 解决oninput事件在中文输入法下会取得拼音的值的问题

    在做搜索等功能时,很多时候我们需要实时获取用户输入的值,而常常会得到类似 w'm 这样的拼音.为了解决这个问题,我在网上搜索了下相关问题,发现了两个陌生的事件:compositionstart 和 c ...

  6. 【30分钟学完】canvas动画|游戏基础(6):坐标旋转探究

    前言 本篇主要讲坐标旋转及其应用,这是编程动画必不可少的技术. 阅读本篇前请先打好前面的基础. 本人能力有限,欢迎牛人共同讨论,批评指正. 坐标旋转 模拟场景:已知一个中心点(centerX,cent ...

  7. 每个 JavaScript 工程师都应当知道的 10 个面试题

    1. 能说出来两种对于 JavaScript 工程师很重要的编程范式么? JavaScript 是一门多范式(multi-paradigm)的编程语言,它既支持命令式(imperative)/面向过程 ...

  8. JZOJ 1775. 合并果子2 (Standard IO)

    1775. 合并果子2 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 在一个果园里,多多已经将所有的果子 ...

  9. .netCore下的jwt的梳理-->借鉴于“老张的哲学”

    之前在公司的项目中有用到jwt进行token验证,但是公司里用的框架已经集成好了jwt,所以对jwt的的了解不够清晰,感觉还是隔着一层.在看了“老张的哲学”的jwt部分后对jwt的认识才更加深刻了一些 ...

  10. webpack安装问题

    在sf进行安装webpack时候,报错如下: 解决方案:npm install webpack-cli -g,如图上