Python基础之程序与用户交互
【一】Python基础之程序与用户交互
【一】程序如何与用户交互
用户通过input命令在窗口内与输入就可以让用户和窗口进行交流
input接受的所有数据类型都是 str 类型
username = input("请输入你的用户名: ")
passwd = input("请输入你的密码: ")
print(type(username))
print(type(passwd))

(1)输出
input是输入,print是输出
简单字符串输出
print("hello,world")
# hello,world
(2)多个变量输出
name = "aex"
age = 25
print("姓名",name,"年龄",age)
姓名 aex 年龄 25
(3)end参数
print 函数也有一些可选参数,例如 end 参数用于指定输出的结尾字符,默认为换行符"\n"(代表换行)。
print("看着风景美如画",end=",")
print("本想吟诗增天下",end=".")
输出:
看着风景美如画,本想吟诗增天下.
【二】基本运算符
python支持的算数运算符与数学上计算的符号使用是一致的 + - * / % ** //
(1)加法运算符
x = 9
y = 2
result = x + y
print(result) #输出:11
(2)减法运算符
x = 9
y = 2
result = x - y
print(result) # 输出:7
(3)乘法运算符
x = 9
y = 2
result = x * y
print(result) # 输出:18
(4)除法运算符
x = 9
y = 2
result = x / y
print(result) # 输出:4.5
(5)取模运算符
x = 9
y = 2
result = x % y
print(result) # 输出:1
(6)幂运算符
x = 9
y = 2
result = x ** y
print(result) # 输出:81
(7)取整除运算符
x = 9
y = 2
result = x // y
print(result) # 输出:4
【三】比较运算符
【1】相等运算符 ==
x = 9
y = 2
result = x == y
print(result) # 输出:False
【2】不等运算符 !=
x = 9
y = 2
result = x != y
print(result) # 输出:True
【3】大于运算符 >
x = 9
y = 2
result = x > y
print(result) # 输出:True
【4】小于运算符 <
x = 9
y = 2
result = x < y
print(result) # 输出:False
【5】大于等于运算符 >=
x = 9
y = 2
result = x >= y
print(result) # 输出:True
【6】小于等于运算符 <=
x = 9
y = 2
result = x <= y
print(result) # 输出:False
【三】赋值运算符
- python语法中除了有=号这种简单的赋值运算外
- 还支持增量赋值、链式赋值、交叉赋值、解压赋值
- 这些赋值运算符存在的意义都是为了让我们的代码看起来更加精简。
【1】增量赋值
(1)介绍
- 增量赋值运算符用于将变量与右侧的表达式相结合,并将结果赋值给变量。
- 这样可以简化表达式,提高代码的可读性。
(2)使用
x = 9
y = 2
# 等同于 x = x + y
x += y
print(x) # 输出:11
- 在上述例子中,
x += y等同于x = x + y,它表示将变量x的值与y相加,并将结果赋值给x。
【2】链式赋值
(1)介绍
- 链式赋值允许在单一语句中给多个变量赋值。这样可以减少代码行数,提高代码的紧凑性。
(2)使用
a = b = c = 5
print(a, b, c) # 输出:5 5 5
- 在上述例子中,
a = b = c = 5表示同时给变量a、b、c赋值为 5。
【3】交叉赋值
(1)介绍
- 交叉赋值允许在不使用临时变量的情况下,交换两个变量的值。
(2)使用
x = 9
y = 2
# 交叉赋值
x, y = y, x
print(x, y) # 输出:2 9
- 在上述例子中,
x, y = y, x表示将变量x的值赋给y,同时将变量y的值赋给x,实现了两个变量值的交换。
【4】解压赋值
(1)介绍
- 解压赋值允许将一个可迭代对象(如列表、元组等)的值解压到多个变量中,以便进一步使用。
(2)使用
coordinates = (3, 5)
# 解压赋值
x, y = coordinates
print(x, y) # 输出:3 5
- 在上述例子中,
x, y = coordinates表示将元组coordinates中的值解压到变量x和y中,以便分别使用。
【五】逻辑运算符
- 逻辑运算符用于连接多个条件,进行关联判断,并返回布尔值
True或False。 - 常用的逻辑运算符包括与(
and)、或(or)、非(not)。

【1】与运算符 (and)
- 与运算符
and在两个条件都为True时,返回True;如果其中一个条件为False,则返回False。
x = 5
y = 10
result = (x > 0) and (y > 0)
print(result) # 输出:True
- 在上述例子中,
(x > 0) and (y > 0)表示同时判断x > 0和y > 0是否都为True,因为两个条件都满足,所以结果为True。
【2】或运算符 (or)
- 或运算符
or在两个条件中至少有一个为True时,返回True;如果两个条件都为False,则返回False。
x = -5
y = 10
result = (x > 0) or (y > 0)
print(result) # 输出:True
- 在上述例子中,
(x > 0) or (y > 0)表示判断x > 0或者y > 0至少有一个条件为True,因为y > 0为True,所以结果为True。
【3】非运算符 (not)
- 非运算符
not用于对一个条件取反,如果条件为True,则返回False;如果条件为False,则返回True。
x = 5
result = not (x > 0)
print(result) # 输出:False
- 在上述例子中,
not (x > 0)表示对条件x > 0取反,因为x > 0为True,所以结果为False。
【4】连续问题
(1)连续多个 and
- 在连续多个
and运算中,如果其中一个条件为False,则整个表达式的结果为False,即使后面的条件都为True。
x = 5
y = 10
z = 15
result = (x > 0) and (y > 0) and (z > 0)
print(result) # 输出:True
- 在上述例子中,
(x > 0) and (y > 0) and (z > 0)表示同时判断x > 0、y > 0和z > 0是否都为True,因为三个条件都满足,所以结果为True。
(2)连续多个 or
- 在连续多个
or运算中,如果其中一个条件为True,则整个表达式的结果为True,即使后面的条件都为False。
x = 5
y = 10
z = -15
result = (x > 0) or (y > 0) or (z > 0)
print(result) # 输出:True
- 在上述例子中,
(x > 0) or (y > 0) or (z > 0)表示判断x > 0、y > 0或z > 0至少有一个条件为True,因为x > 0为True,所以结果为True。
【5】优先级 not>and>or
- 在逻辑运算中,
not的优先级最高,其次是and,最后是or。 - 当表达式中同时包含这三种运算符时,
not会首先被计算,然后是and,最后是or。
(1)优先级关系
print(3 > 4 and 4 > 3 or 1 == 3 and 'x' == 'x' or 3 > 3)
# False
(2)区分版块
- (1) not的优先级最高,就是把紧跟其后的那个条件结果取反,所以not与紧跟其后的条件不可分割
- (2) 如果语句中全部是用and连接,或者全部用or连接,那么按照从左到右的顺序依次计算即可
- (3) 如果语句中既有and也有or,那么先用括号把and的左右两个条件给括起来,然后再进行运算
print((3 > 4 and 4 > 3) or (1 == 3 and 'x' == 'x') or 3 > 3)
# False
(3)短路运算
- 逻辑运算的结果一旦可以确定
- 那么就以当前处计算到的值作为最终结果返回
>>> 10 and 0 or '' and 0 or 'abc' or 'egon' == 'dsb' and 333 or 10 > 4
我们用括号来明确一下优先级
>>> (10 and 0) or ('' and 0) or 'abc' or ('egon' == 'dsb' and 333) or 10 > 4
短路: 0 '' 'abc'
假 假 真
返回: 'abc'
(4)短路运算面试题
1 or 3
1
1 and 3
3
0 and 2 and 1
0
0 and 2 or 1
1
0 and 2 or 1 or 4
1
0 or False and 1
False
【六】成员运算符
- 成员运算符用于测试序列是否包含特定的元素。可以用于字符串、列表、元组等序列类型的数据。

【1】in运算符
- 如果在指定的序列中找到值返回 True,否则返回 False。
fruits = ["apple", "banana", "cherry"]
print("banana" in fruits) # True
print("orange" in fruits) # False
【2】not in运算符
- 如果在指定的序列中没有找到值返回 True,否则返回 False。
fruits = ["apple", "banana", "cherry"]
print("banana" not in fruits) # False
print("orange" not in fruits) # True
- 这两个运算符可以用于字符串、列表、元组等序列类型。
【3】小结
print(not 'lili' in ['jack','tom','robin'])
# True
print('lili' not in ['jack','tom','robin'])
# True
- 注意:虽然下述两种判断可以达到相同的效果,但我们推荐使用第二种格式,因为not in语义更加明确
【七】身份运算符
- 身份运算符用于比较对象的内存地址,即判断两个对象是否指向同一块内存地址。

【1】is运算符
- 如果两个变量引用同一个对象,则返回 True,否则返回 False。
a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is b) # True
print(a is c) # False
【2】is not运算符
- 如果两个变量引用的不是同一个对象,则返回 True,否则返回 False。
a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is not b) # False
print(a is not c) # True
- 这两个运算符主要用于检查对象的标识,即它们是否指向相同的内存地址。
【补充】==和 is
==双等号比较的是value是否相等is用于比较两个对象的标识id(内存地址)是否相同- 在实际应用中,特别是对于可变对象,
==通常更适合用于比较值,而is更适合用于比较对象的身份。 - id相同,内存地址必定相同,意味着type和value必定相同
- value相同type肯定相同,但id可能不同
x = 'Info Tony:18'
y = 'Info Tony:18'
print(id(x), id(y)) # x与y的id不同,但是二者的值相同
# 3158064309168 3158064309168
print(x == y) # 等号比较的是value
# True
print(type(x), type(y)) # 值相同type肯定相同
# (<class 'str'>, <class 'str'>)
print(x is y) # is比较的是id,x与y的值相等但id可以不同
# True
Python基础之程序与用户交互的更多相关文章
- python基础之程序交互与数据类型
一.程序交互 1.什么是程序交互? name=input('输入用户名:') #无论用户输入何种内容,input都会存成字符串格式 print(name) 2.为啥要有程序交互? 让计算机能够模拟人, ...
- python基础-10 程序目录结构 学生选课系统面向对象练习
一 程序目录结构 1 bin文件夹 二进制文件.代码程序 2 conf 配置文件 3 帮助文档 4 头文件库文件等 二 学生选课系统部分代码 未完待续 1 包内的__init__.py文件 在包 ...
- Python基础-小程序练习(跳出多层循环,购物车,多级菜单,用户登录)
一. 从第3层循环直接跳出所有循环 break_flag = False count = 0 while break_flag == False: print("-第一层") wh ...
- python 基础(三) 程序基本流程
流程控制 流程结构分为3种 顺序结构 分支结构 循环结构 一 分支结构 (1) 单一条件分支 主体结构: if 条件表达式: #为真得代码块 (2) 双向条件分支 主体结构: if 条件表达 ...
- python最全学习资料:python基础进阶+人工智能+机器学习+神经网络(包括黑马程序员2017年12月python视频(百度云链接))
首先用数据说话,看看资料大小,达到675G 承诺:真实资料.不加密,获取资料请加QQ:122317653 包含内容:1.python基础+进阶+应用项目实战 2.神经网络算法+python应用 3.人 ...
- 【Python】Java程序员学习Python(三)— 基础入门
一闪一闪亮晶晶,满天都是小星星,挂在天上放光明,好像许多小眼睛.不要问我为什么喜欢这首歌,我不会告诉你是因为有人用口琴吹给我听. 一.Python学习文档与资料 一般来说文档的资料总是最权威,最全面的 ...
- Python基础(一):程序输入输出、判断合法用户、编写判断成绩的程序
一.程序输入输出 目标: 编写login.py脚本,实现以下目标: 提示用户输入用户名 将用户名保存在变量中 在屏幕上显示欢迎用户的信息 方案: 编写程序时,很多情况下都需要程序与用户交互.在pyth ...
- .Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...
- .Net程序员Python之道---Python基础
最近对动态语言比较好奇.所以选择了学习Python这门语言.话不多说开始学习笔记. 一. Python 基础: 1. print对Python进行数据输出, #号后面是队友的输出结果, 通过encod ...
- python基础练习-猜年龄、编写登陆接口小程序
python基础练习: 一.猜年龄 , 可以让用户最多猜三次! age=40 count = 1 while count <=3 : user_guess=int(input("i ...
随机推荐
- 【4】jupyter notebook快速入门、以及常用快捷键使用
相关文章: [1]Anaconda安装超简洁教程,瞬间学会! [2]Anaconda下:ipython文件的打开方式,Jupyter Notebook中运行.py文件,快速打开ipython文件的方法 ...
- 1.5 为x64dbg编写插件
任何一个成熟的软件都会具有可扩展性,可扩展性是现代软件的一个重要特征,因为它使软件更易于维护和适应变化的需求,x64dbg也不例外其可通过开发插件的方式扩展其自身功能,x64dbg提供了多种插件接口, ...
- 5、后端学习规划:.Net学习 - 学习规划系列文章
.Net是微软发布的一整套的软件编程解决方案.笔者从大学的时代开始就阅读.netframework的书籍了,但是当时没有进行实践.毕业后,笔者去了微软技术中心的公司上班,所以就接触了.net以及C#编 ...
- Git企业开发控制理论和实操-从入门到深入(七)|企业级开发模型
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...
- STM32 HAL库 USART DMA驱动
前言 本文是在使用 STM32L4 的串口 DMA 功能时,使用 HAL 库出现的一些问题,通过以下方式解决了 HAL 库中存在 DMA 发送和接收的一些问题. STM32L4 的 DMA 简介 DM ...
- Linux-sshpass(shell脚本使用ssh远程执行命令通过密码的方式登录)
1. sshpass简介 sshpass 是一个在非交互式 ssh 会话中自动输入密码的工具.它可以直接在命令行中指定密码,因此可以用于 Shell 脚本等自动化场景.在 Red Hat 系统中,可以 ...
- [Ngbatis源码学习][Spring] Spring 的资源管理 ResourceLoader
在学习Ngbatis的源码时,看到了有关xml文件的加载,涉及到了资源的加载,对相关知识进行总结与整理. 1. 相关类 Resource AbstractResource ResourceLoader ...
- 在Windows上使用.NET部署到Docker 《让孩子们走出大坑》
折腾Docker 有几天了,整别的都没这个糟心.目前已经顺利部署运行起来了.顺便给大家分享下处理在Windows上使用.NET部署到Docker的相关问题解决方法. 1. Docker无法安装问题 ...
- 使用python 打包成exe文件
python 打包exe 起因:闲的蛋疼 过程:扯的蛋疼 结果:不疼了 1.起因(闲的蛋疼) 突然的emo,不想干活,于是乎找遍微信好友,群发了十年八辈子不联系的一群人(此办法学习 ...
- JS leetcode 有序数组的平方 题解分析,灵活运用Math.pow与Math.abs方法
壹 ❀ 引 郁闷的周一,晚上来做一道简单的算法题提提神,题目来自leetcode977. 有序数组的平方,题目描述如下: 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也 ...