【Python】输入输出与运算符

2023-11-01

目录

1.输入输出

1.1 和用户交互

1.2 通过控制台输出

1.3 通过控制台输入 

2. 运算符

2.1 算数运算符

2.2 关系运算符

 2.3 逻辑运算符

 2.4 赋值运算符


1.输入输出

1.1 和用户交互

程序需要和用户进行交互

用户把信息传递给程序的过程,称为“输入”

程序包结果展示给用户的过程,称为“输出”

输入输出的最基本的方法就是控制台。用户通过控制台输入一些字符串,程序再通过控制台打印出一些字符串。

例如:

Pycharm 运行程序,下方弹出的窗口就可以视为控制台

 输入输出的最常见方法就是图形化界面,如QQ、网易音乐、浏览器等等

1.2 通过控制台输出

Python 使用print 函数输出到控制台


print('hello')

还可以输出其他类型的变量

a = 10
print(a)
b = True
print(b)

输出内容混合了字符串和变量的也可以

例如:输出 a = 10

a = 10
print(f'a = {a}')

 注: 

使用 f 作为前缀的字符串 , 称为 f-string
里面可以使用 { } 来内嵌一个其他的变量 / 表达式

1.3 通过控制台输入 

python 使用 input 函数, 从控制台读取用户的输入

a = 0
a = input('请输入一个整数: ')
print(f'你输入的整数是{a}')

 

 注:

input 的参数相当于一个 " 提示信息 ", 也可以没有
input 的返回值就是用户输入的内容 . 是字符串类型

 例如:我在控制台输入 a + b ,理想中应该是和,但是最后输出的是字符串拼接

a = input('')
b = input('')
print(f'a + b = {a + b}')

 例如:要想输出的结果是和,就需要对变量进行类型转换,转成 int 

a = input('请输入第一个数:')
b = input('请输入第二个数:')

a = int(a)
b = int(b)
print(f'a + b = {a + b}')

注: 

通过 int( ) 把变量转成了 int 类型 .
类似的 , 使用 float( ), bool( ), str( ) 等可以完成对应的类型转换。
代码示例 : 输入 4 个小数 , 4 个小数的平均值
a = input('请输入第一个小数:')
b = input('请输入第二个小数:')
c = input('请输入第二个小数:')
d = input('请输入第四个小数:')

a = float(a)
b = float(b)
c = float(c)
d = float(d)

avg = (a + b + c + d) / 4
print(f'平均数: {avg}')

2. 运算符

2.1 算数运算符

像 + - * / % ** // 这些进行算数运算的运算符,称为算数运算符

1) / 作为除法运算取结果,不像 c/java 那样取结果的整数部分

例:


a = 5 / 2
print(a)

 /  中和我们平常的除法法则一样,0不能做除数,否则会抛异常

例:

a = 5 / 0
print(a)

2)  %  是求余数

例 7 除以 3 ,商是2,余数是 1 

a = 7 % 2
print(a)

 3) ** 是乘方,就是算数中的多少次方

不光能算整数次方 , 还能算小数次方

例: 4 的 2次方 是16

        4 的 0.5 次方是 2

a = 4 ** 2
b = 4 ** 0.5
print(a)
print(b)

 4)// 是取整除法(也叫地板除). 整数除以整数, 结果取整数部分(直接舍弃小数部分,并向下取整即取比结果还小的整数, 不是四舍五入)

例:7 除以 2 结果是 3.5,取3

       -7 除以 2 结果是 -3.5 , 取 -4 (这里就很明显体现了向下取整)

a = 7 // 2
b = -7 // 2
print(a)
print(b)

2.2 关系运算符

<  <=  >  >=  ==  != 这一系列的运算符称为 关系运算符 , 它们是在比较操作数之间的关系
<= " 小于等于 "
>= " 大于等于 "
== " 等于 "
!= " 不等于 "

 1) 比较整数

如果关系符合, 则表达式返回 True。如果关系不符合, 则表达式返回 False

a = 10
b = 20
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

 2)比较字符串

字符串比较大小 , 规则是 " 字典序 "
关于字典序 :
想象一个英文词典 , 上面的单词都是按照字母顺序排列 . 如果首个字母相同 , 就比较第二个字母 . ( 就比如著名单词 abandon).
我们认为一个单词在词典上越靠前 , 就越小 . 越靠后 , 就越大 .

例:

a = 'hello'
b = 'world'
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

 

3) 浮点数比较

对于浮点数来说, 不要使用 == 判定相等。

因为浮点数在计算机中的表示并不是精确的! 在计算过程中, 就容易出现非常小的误差

例:

print(0.1 + 0.2 == 0.3)

看下在Python中 0.1 + 0.2 的结果是多少

print(0.1)
print(0.2)
print(0.3)
print(0.1 + 0.2)

 

 可以看到, 0.1 + 0.2 的结果并非是 0.3 ,这个是 IEEE754 标准规定的浮点数格式所引入的问题

正确的比较方式 : 不再严格比较相等了 , 而是判定差值小于允许的误差范围
a = 0.1 + 0.2
b = 0.3
print(-0.000001 < (a - b) < 0.000001)

 2.3 逻辑运算符

and or not 这一系列的运算符称为 逻辑运算符
and 并且。   两侧操作数均为 True, 最终结果为 True, 否则为 False。 ( 一假则假 )
or 或者。   两侧操作数均为 False, 最终结果为 False。  否则为 True。( 一真则真 )
not 逻辑取反。   操作数本身为 True, 则返回 False。 本身为 False, 则返回 True。

例:

a = 10
b = 20
c = 30

print(a < b and b < c)
print(a < b and b > c)
print(a > b or b > c)
print(a < b or b > c)
print(not a < b)
print(not a > b)

 

 注:a < b and b < c 这个操作等价于 a < b < c . 这个设定和大部分编程语言都不相同

 关于短路求值

和其他编程语言类似 , Python 也存在短路求值的规则 .
对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行。
对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行

例:

print(10 > 20 and 10 / 0 == 1)
print(10 < 20 or 10 / 0 == 1)

 

 2.4 赋值运算符

1)= 的使用

= 表示赋值 注意和 == 区分
= 除了基本的用法之外 , 还可以同时针对多个变量进行赋值
例:
链式赋值
a = b = 10

多元赋值

a, b = 10, 20
代码实例 : 交换两个变量
基础写法
a = 10
b = 20
tmp = a
a = b
b = tmp
基于多元赋值
a = 10
b = 20
a, b = b, a
2) 复合赋值运算符
Python 还有一些 复合赋值运算符。   例如 +=  - =  *=  /=  %=
其中 a += 1 等价于 a = a + 1 。 其他复合赋值运算符也是同理
例:
​​​​​​​
a = 10
a = a + 1
print(a)

b = 10
b += 1
print(b)

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python】输入输出与运算符 的相关文章

  • (discord.py) 尝试更改成员角色时,“用户”对象没有属性“角色”

    因此 我正在尝试编写一个机器人 让某人在命令中指定的主持人指定的一段时间内暂停角色 我知道该变量称为 小时 即使它目前以秒为单位 我稍后会解决这个问题 基本上 它是由主持人在消息 暂停 personmention numberofhours
  • 尽管极其懒惰,但如何在 Python 中模拟 IMAP 服务器?

    我很好奇是否有一种简单的方法来模拟 IMAP 服务器 例如imaplib模块 在Python中 without做很多工作 是否有预先存在的解决方案 理想情况下 我可以连接到现有的 IMAP 服务器 进行转储 并让模拟服务器在真实的邮箱 电子
  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • 使用get-pip.py 安装python2 的pip

    pip V pip 21 2 3 from Library Python 3 8 site packages pip python 3 8 pip3 V pip 21 2 3 from Library Python 3 8 site pac
  • 我的世界服务器发消息有符号,我的世界彩色字体符号

    在我的世界中很多玩家都想知道彩色字体怎么输入 在游戏中彩色字体需要配合相应的符号才能输入 下面小编就来告诉大家我的世界中彩色字体怎么打 正确答案 1 在游戏中 只要在输入文字后输入 颜色值 即可让文字发生变色 小贴士 找不到该符号的玩家可以
  • Mixing digital audio(混音数字音频),声音混合算法

    Mixing digital audio 大家可以看这篇文章Mixing digital audio
  • itk打包问题

    代码 只装了itk pyinstaller usr bin env python coding utf 8 import itk ImageType itk Image itk UL 3 image ImageType New print
  • Supervised Hashing for Image Retrieval via Image Represention Learning-笔记1

    摘要 Background In the existing supervised hashing methods for images an input image is usually encoded by a vector of han
  • #if defined和#if !defined(c语言的宏定义)

    因为对于一个大程序而言 我们可能要定义很多常量 不管是放在源文件还是头文件 那么我们有时考虑定义某个常量时 我们就必须返回检查原来此常量是否定义 但这样做很麻烦 if defined宏正是为这种情况提供了解决方案 举个例子 如下 defin
  • vue中使用百度地图 完成展示坐标,点击坐标展示相关信息

    效果如图 一 引入百度地图 第1步 在 index html 中引入下面代码 注意将你的AK代入 第2步 在 webpack base conf js 添加externals BMap配置 与entry平级 内容如下 entry app b
  • VirtualBox(vagrant) + k8s单节点(只有master)

    前言 在生产环境中 建议k8s使用至少三个节点的集群 以确保高可用性 不过也可以在单节点上安装和运行集群 方便用于学习和测试目的 但因为所有组件都在同一个节点上运行 它不具备高可用性和故障恢复功能 由于内存资源分配不够等原因 本博客记录单节
  • Mysql-存储过程简单入门

    定义 存储过程的英文是 Stored Procedure 它的思想很简单 就是一组经过 预先编译 的 SQL 语句 的封装 执行过程 存储过程预先存储在 MySQL 服务器上 需要执行的时候 客户端只需要向服务器端发出调用 存储过程的命令
  • 海外网红营销是战略还是战术?从“PDCA循环”层面规划营销

    进行一次海外网红营销就偃旗息鼓的出海品牌不在少数 比如一些刚进入出海赛道的国货美妆品牌 比照了花西子 完美日记的网红营销手段 大笔投入海外网红营销 希望一举成功 但发现结果不太如意 并没有大量获客 做海外网红营销到底可以大量获客吗 一般能达
  • 第4章运算符

    第4章运算符 算术运算符 算术运算符主要用于数学运算 其可以连接运算符前后的两个数值或表达式 对数值或表达式进行加 减 乘 除 或 DIV 和取模 或 MOD 运算 加法与减法运算符 SELECT 100 100 0 100 0 100 5
  • 用Evolution收发livemail或hotmail的设置

    1 打开Evolution 选择 Edit gt Preferences gt Mail Accounts gt Add Name xxx live cn 或者是xxx hotmail com Full Name 自己的名字 Email A
  • 如何在PCB中导入LOGO

    我们在画PCB的时候有时候需要把一些图标或者图案弄在板子 这时候就需要用到导入LOGO 下面介绍怎么导入LOGO 第一步 导入LOGO前我们需要将PCB Logo Creator文件夹 也就是PCBLogoCreator PRJSCR 复制
  • OTA升级包的解释和升级方法

    OTA升级是什么意思 OTA升级就是某官方通过推送的方式将手机的固件升级通过推送信息的形势发送到用户的手机端 当用户收到推送信息以后即可从服务器联网下载升级包 这种升级方式即称之为OTA升级 OTA升级以后会不会删除手机端的联系人 应用程序
  • ubuntu18.04“软件与更新”中无附加驱动问题(已解决)

    刚安装完ubuntu18 04系统之后 想开启独显驱动 但是在 软件与更新 中不现实附加驱动 尝试过网络上其他方法但没有解决 这里我在 软件与更新 的 ubuntu软件 选项 左上角第一个 中 将 源代码 这个模块打开 便解决了问题 也许我
  • 农业知识图谱搭建和遇到的问题

    Agriculture KnowledgeGraph demo http ecnukg vicp io github https github com qq547276542 Agriculture KnowledgeGraph 本文基于华
  • JDBC——概念

    JDBC 概念 Java DataBase Connectivity Java 数据库连接 Java语言操作数据库 JDBC本质 其实是官方 sun公司 定义的一套操作所有关系型数据库的规则 即接口 各个数据库厂商去实现这套接口 提供数据库
  • vue中v-model双向绑定使用和原理

    1 给出双向绑定定义 vue中双向绑定是一个指令 v model 可以绑定一个响应式数据到视图 同时视图中变化能改变改值 2 双向绑定带来的好处 v model 是语法糖 默认情况下相当于 value 和 input 使用 v model
  • 性能测试-定义以及指标

    一 定义 性能测试是指通过自动化测试工具模拟多种正常 峰值 以及异常的负载情况下对系统各项性能指标进行的测试 负载测试 压力测试 容量测试都属于性能测试 负载测试 确定各种负载下系统的性能 目标是测试负载逐渐增加时各项指标的变化 压力测试
  • 【Python】输入输出与运算符

    目录 1 输入输出 1 1 和用户交互 1 2 通过控制台输出 1 3 通过控制台输入 2 运算符 2 1 算数运算符 2 2 关系运算符 2 3 逻辑运算符 2 4 赋值运算符 1 输入输出 1 1 和用户交互 程序需要和用户进行交互 用