当前位置: 首页 > news >正文

【Python基础入门6】Python的输入与运算符

目录

一、关于Python的输入

1、input()函数

2、sys.stdin.readline() 方法

二、关于运算符

1、算术运算符

2、赋值运算符

3、比较运算符

4、布尔运算符

5、位运算符

6、运算符的优先级


一、关于Python的输入

1、input()函数

众所周知,我们在Python中想输入数据赋给变量时,需要用到input()函数,例如:

name = input()

在上面的代码中,“name”为变量,“=”为赋值运算符,“input()函数”为输入函数。

在默认情况下,无论我们在终端输入的是什么,整数也好字符串也好,它最终返回的类型均为字符串类型。因此,如果想要让我们的变量赋到整数型数据or浮点型数据,我们需要在源头进行转换:

age = int(input())
weight = float(input())

当然,如果想在终端输入时有问题引导,我们可以在input()中用引号进行输入补充,例如:

a = input('How do you do?')

>> How do you do?

之后,我们可以在问号后面,继续输入内容

2、sys.stdin.readline() 方法

在使用sys.stdin.readline()前,我们需要先导入Python的内置模块sys。同input()有着同样输入功能的是sys.stdin.readline(),它同input()一样默认返回字符串,因此,同样适用强制类型转换的方法。与input()不同的点在于,sys.stdin.readline()会将标准输入全部获取,包括末尾的'\n' ,因此我们可以将它与strip()一起使用,在某些时候以此来将末尾不必要的换行符去掉:

import sys


a = sys.stdin.readline().strip('\n')

值得一提的是,既然sys.stdin.readline()和input()有着相同的功能那我们为什么还要多花时间去写更长且自带麻烦 '\n' 的sys.stdin.readline()呢?在一些情况下(说不准)sys.stdin.readline()输入的速度比input()更快,尤其是在输入量比较大的时候,sys.stdin.readline的输入速度比input要快很多。

更多输入的相关内容,可移步http://t.csdn.cn/OdpNvhttp://t.csdn.cn/OdpNv

二、关于运算符

1、算术运算符

常见的就是 +,-,*,/ 四种运算符,值得注意的是变量在除'/'后的类型变换:

a = 10
print(type(a))
a /= 3
print(type(a))

>> <class 'int'>
>> <class 'float'>

除此之外还有幂运算' ** ', 整除运算' // ', 取余运算' % ' 

需要注意的点是在整除运算中,除数和被除数在一正一负的前提下,需要向下取整

print(10 // 3)
print(16 // -5)
print(-7 // 2)


>> 3
>> -4
>> -4

在取余运算中 ,遇到一正一负进行计算的情况下,如果手动计算,则需按照 余数 = 被除数 - 除数 * 商 公式进行,

print(9 % 4)
print(9 % -4)

>> 1
>> -3

2、赋值运算符

执行顺序:右 → 左

支持链式赋值 → a = b = c = 10

支持参数赋值 → +=、-=、*=、/=,//=,%=

支持系列解包赋值 → a, b, c = 3, 6, 9

支持交换变量值 → a, b = b, a

3、比较运算符

对变量或者表达式的结果进行大小or真假等的比较,常见的比较运算符有:

>,<,>=,<=,!=,==,is,is not

比较运算符的结果为bool类型

a, b = 4, 59
print('a > b吗?', a > b)
print('a <= b吗?', a <= b)
print('a == b吗?', a == b)

>> a > b吗? False
>> a <= b吗? True
>> a == b吗? False

4、布尔运算符

常见的布尔运算符有:

and,or,not,in,not in

a, b = 1, 2
print(a == 1 and b == 2)
print(a > 2 and b == 2)
print(a <= 1 or b >= 2)
print(a > 1 or b == 2)
f1 = True
f2 = False
print(not f1)
print(not f2)

>> True
>> False
>> True
>> True
>> False
>> True

5、位运算符

作用:将数据转成二进制进行计算

位与 &:对应数位都是1,结果才为1,否则为0

位或 |:对应数位都是0,结果才为0,否则为1

左移位运算符 <<:高位溢出则舍弃,低位补0

右移位运算符 >>:低位溢出则舍弃,高位补0

print(4 & 8)
print(4 << 1)
print(4 >> 1)
print(4 | 8)
print(4 << 2)
print(4 >> 2)

>> 0
>> 8
>> 2
>> 12
>> 16
>> 1

6、运算符的优先级

() > 算术 > 位 > 比较 > 布尔 > 赋值

相关文章:

  • 微服务分布式开源架构是什么?
  • Oracle触发器设置
  • 广州市车联网先导区LTE-V2X 车载直连通讯设备技术规范
  • 运维技术linux、nginx
  • 数字逻辑设计(2)
  • tars架构
  • 数据结构算法之贪心算法,贪心算法之区间调度问题
  • Spark Rdd之mapToPair,flatMapToPair
  • nodejs项目实例知识信息分享平台
  • Python类和对象怎么使用
  • 【我不熟悉的css 】02. 手动画一个svg图片
  • 一、特征工程
  • 超详细Redis入门教程三
  • 【Go】slice
  • 低码筑梦,扬帆起航|湘潭大学万应低代码实训营圆满结营!
  • 【译】JS基础算法脚本:字符串结尾
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2019年如何成为全栈工程师?
  • bootstrap创建登录注册页面
  • JavaScript设计模式之工厂模式
  • Lsb图片隐写
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • overflow: hidden IE7无效
  • swift基础之_对象 实例方法 对象方法。
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • NLPIR智能语义技术让大数据挖掘更简单
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 积累各种好的链接
  • #pragma data_seg 共享数据区(转)
  • (C#)获取字符编码的类
  • (搬运以学习)flask 上下文的实现
  • (二)c52学习之旅-简单了解单片机
  • (二)JAVA使用POI操作excel
  • (二十三)Flask之高频面试点
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (剑指Offer)面试题34:丑数
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (三) diretfbrc详解
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .NET 设计一套高性能的弱事件机制
  • .NET企业级应用架构设计系列之结尾篇
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @Bean有哪些属性
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • [20170705]diff比较执行结果的内容.txt
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [C#]DataTable常用操作总结【转】
  • [Docker]三.Docker 部署nginx,以及映射端口,挂载数据卷