首页 > 编程语言 >程序与用户之间交互

程序与用户之间交互

时间:2024-03-31 22:11:06浏览次数:18  
标签:username True 程序 用户 运算符 result print input 交互

【一】用户交互

  • 交互的本质就是输入、输出
  • 用户交互就是人往计算机中input/输入数据,计算机print/输出结果

【二】为什么要与用户交互

  • 为了让计算机能够像人一样与用户沟通交流

【三】如何实现交互

【1】输入(input)

  • input接受的所有数据类型都是 str 类型
username = input("请输入你的用户名:>>>")
password = input('请输入你的密码:>>>')

print(username, type(username))  # input接受的所有数据类型都是str类型
print(password, type(password))  # input接受的所有数据类型都是str类型

# input 语法
# (1)弹出输入框
# input()
# (2)提示信息
# print("请输入用户名")
# input()
# (3)提示输入信息并且获取到输入的信息
# 提示输入框
# username = input("请输入用户名 :>>>> ")
# # 用变量接收到输入的内容
# print(username)
# (4)输入的内容永远是字符串
# username = input("请输入用户名 :>>>> ")
# 用变量接收到输入的内容
# print(username, type(username))
# 1 <class 'str'>
# True <class 'str'>

# (5)数据之间进行运算需要转换数据类型
# num_1 = input("请输入数字1 :>>> ")
# num_2 = input("请输入数字2 :>>> ")
# result = num_1 + num_2
# 强制数据类型转换 ---> 将符合当前数据类型的格式的数据转换为指定的数据类型
# 1 = int("1")
# int("a")
# result = int(num_1) + int(num_2)
# print(result,type(result))

【2】输出(print)

  • print 函数用于向控制台输出信息。你可以使用 print 函数来显示程序的运行结果、提示信息等。
# 直接打印变量或者字符串或者其他
# print("Hello World!")
name = "dream"
age = 18
# print(f"my name is {name},my age is {age}")

# print 语句允许存放多个变量名及变量值,但是每一个元素之间要用逗号 隔开
print(f"my name is", name, "my age is", age)

# print 可以修改默认的尾椎
# 默认自带一个结束符,换行符,我们可以通过 end 参数修改默认的结束符
print(name, end='*')
print(age, end='&')

【四】运算符

【1】算数运算符

【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)  # 输出:4
【6】求余数运算符 %
x = 9
y = 2
result = x % y
print(result)  # 输出:1
【7】幂运算符 **
x = 9
y = 2
result = x ** y
print(result)  # 输出:81

【2】比较运算符

【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

【3】赋值运算符

  • python语法中除了有=号这种简单的赋值运算外
  • 还支持增量赋值、链式赋值、交叉赋值、解压赋值
  • 这些赋值运算符存在的意义都是为了让我们的代码看起来更加精简。
    • 我们以x=9,y=2为例先来介绍一下增量赋值
# = += -= *= /= %= //= **=
# += 增量赋值
增量赋值运算符用于将变量与右侧的表达式相结合,并将结果赋值给变量
num_one = 2
num_one += 1  # num_one = num_one + 1
print(num_one)
num_two = num_one + 1
num_two += num_one
print(num_two)
# 链式赋值
链式赋值允许在单一语句中给多个变量赋值。这样可以减少代码行数,提高代码的紧凑性。
a = b = c = 6
print(a, b, c)
# 交叉赋值
交叉赋值允许在不使用临时变量的情况下,交换两个变量的值。
x = 8
y = 9
x, y = y, x
print(x, y)
# 解压赋值
解压赋值允许将一个可迭代对象(如列表、元组等)的值解压到多个变量中,以便进一步使用。
a, b = (1, 2)
print(a, b)
# 位置变量名少了不行
# a, b = (1, 2, 3)
# 位置变量名多了不行
# a, b, c, d = (1, 2, 3)
# 使用下划线代替多余的元素
_, b, _ = (1, 2, 3)
print(b)

【五】逻辑运算符

  • 逻辑运算符用于连接多个条件,进行关联判断,并返回布尔值 TrueFalse
  • 常用的逻辑运算符包括与(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 > 0y > 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 > 0True,所以结果为 True

【3】非运算符 (not)

  • 非运算符 not 用于对一个条件取反,如果条件为 True,则返回 False;如果条件为 False,则返回 True
x = 5

result = not (x > 0)
print(result)  # 输出:False
  • 在上述例子中,not (x > 0) 表示对条件 x > 0 取反,因为 x > 0True,所以结果为 False

【4】连续问题

[1]连续多个 and

  • 在连续多个 and 运算中,如果其中一个条件为 False,则整个表达式的结果为 False,即使后面的条件都为 True

[2]连续多个 or

在连续多个 or 运算中,如果其中一个条件为 True,则整个表达式的结果为 True,即使后面的条件都为 False

【3】优先级 not>and>or

print(3 > 4 and 4 > 3 or 1 == 3 and 'x' == 'x' or 3 > 3)
# False     and       True  or    Flase      and    True   or   Flase
# false  or false or flase
# false
# 我们自己写逻辑运算的时候建议 用 () 声明优先级

print(10 and 0 or '' and 0 or 'abc' or 'egon' == 'dsb' and 333 or 10 > 4)
#  10  and   0   or  false and false or "abc"  or false  adn 333 or true
#        false or flase or "abc"  or false or true
#  false or "abc" or false or true
#  "abc" or false or true
#  "abc" or true
#  "abc"
print("abc")

【六】成员运算符

【1】in运算符

fruits = ["apple", "banana", "cherry"]

print("banana" in fruits)  # True
print("orange" in fruits)  # False

【2】not in运算符

fruits = ["apple", "banana", "cherry"]

print("banana" not in fruits)  # False
print("orange" not in fruits)  # True

【七】身份运算符

  • 身份运算符用于比较对象的内存地址,即判断两个对象是否指向同一块内存地址。

【1】is运算符

a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is b)  # True
print(a is c)  # False 因为a 和 c 是两个独立的内存空间,所以 a 不是 c

【2】is not运算符

a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is not b)  # False
print(a is not c)  # True
  • 这两个运算符主要用于检查对象的标识,即它们是否指向相同的内存地址。
# 【补充】 == 和 is 的区别
# 比较运算符,比较的值先相等
# == 比较的是 值是否相等
# is 比较的是 内存空间地址
  • == 双等号比较的是value是否相等
  • is用于比较两个对象的标识id(内存地址)是否相同
  • 在实际应用中,特别是对于可变对象,==通常更适合用于比较值,而is更适合用于比较对象的身份。
  • id相同,内存地址必定相同,意味着type和value必定相同
  • value相同type肯定相同,但id可能不同

【八】流程控制(if-elif-else)

  • 程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。
    • 可以通过控制语句实现更丰富的逻辑以及更强大的功能。
    • 几乎所有编程语言都有流程控制语句,功能也都基本相似。
  • 其流程控制方式有
    • 顺序结构
    • 分支结构
    • 循环结构
  • 这里最简单最常用的就是顺序结构,即语句从上至下一一执行。

【1】顺序结构

  • 顺序结构用于按照既定的顺序执行一系列的操作,这是程序执行的最基本模式。
  • 通过良好的顺序结构,可以清晰地表达程序的逻辑流程,使代码易读易懂。
  • 这有助于开发者理解和维护代码,也方便调试。

【2】单分支结构(if)

  • 单分支结构指的是程序根据条件的成立与否,执行两个分支中的其中一个。
  • 常见的单分支结构语法是if语句。
【1】单分支结构
# if 条件:
# 四个空格 代码
# score = 89
# if score > 90:
#     # 这里面的代码我们称之为代码体/代码块
#     print(f"当前成绩为 {score} , 评级为优秀!")
# print(f"111")

# 单分支结构会依次向下执行代码# 并且在遇到条件时进行判断,如果条件为真则执行当前代码提

# 【2】双分支条件
# if 条件:
# 四个空格 代码体
# else:
# 四个空格 代码体
# score = 89
# if score >= 90:
#     print(f" {score} 优秀")
# else:
#     print("不优秀")
# print(11)
# 双分支条件:有一个条件做约束,如果当前条件不符合,则会进入到另一个条件的代码体中

# 【3】多分支
# 90   80   70   70以下
# 优秀  良好 及格    不及格
# if 条件:
# 四个空格 代码体
# elif 条件:
# 四个空格 代码体
# elif 条件:
# 四个空格 代码体
# elif 条件:
# 四个空格 代码体
# else:
# 四个空格 代码体

score = 69
if score >= 90:
    print(f"{score} :>>>> 优秀")
elif score >= 80:
    print(f"{score} :>>>> 良好")
elif score >= 70:
    print(f"{score} :>>>> 及格")
else:
    if score >= 60:
        print(f"差及格还有一丢丢")
    else:
        print(f"{score} :>>>> 不及格")

【3】循环结构(while)

# 循环结构
# 一个条件不符合我当前状态的时候我可能还会二次判断
# 密码尝试上 可以进行多次密码的尝试
# while 条件(循环截止的条件):
# 代码体

# 达到某个条件的时候想结束当前循环
# continue
# 结束整个循环
# break
# while True:
#     score = int(input("请输入成绩:》》》》"))
#     if score >= 90:
#         print(f"优秀")
#     else:
#         print(f"不及格")

count = 0
while count <=9:
    count += 1
    if count == 1:
        print("这是 1 ")
    elif count == 3:
        print("这是 3 ")
        # 结束本次循环
        continue  # 走到continue 以后就不会继续乡下执行代码,而是回到了  while 条件重新进入当前循环
    elif count == 5:
        print(f"这是 :>>> {count}")
        break # 类似于程序出现错误直接将当前程序打断
    print(count)

# 做登录的三次尝试
user = {"username": "song","password":"123"}
username = user["username"]
password = user["password"]
count = 0
while count < 3:
    username_input = input("输入用户名:")
    password_input = input("输入密码: ")
    if  username_input == username and password_input == password:
        print("登录成功")
        break
    else:
        count = count + 1
        print("登录错误 你还剩下次机会",(3 - count),"次机会")
print(count)

练习题

# 练习题:
# 前提:创建一个字典存了用户的用户名和密码
# 有一个输入框输入用户名和密码
# 有了用户名以后去去字典中查密码
# 有了用户名但是字典中不存在的情况,打印当前用户名不存在
# 将字典中的密码和输入的密码进行比对
# 一致打印登陆成功
# 否则提示登录失败

user = {"username": "song","password":"123"}
username = user["username"]
password = user["password"]
count = 0
while count < 3:
    username_input = input("输入用户名:")
    password_input = input("输入密码: ")
    if  username_input == username and password_input == password:
        print("登录成功")
        break
    else:
        count = count + 1
        print("登录错误 你还剩下次机会",(3 - count),"次机会")
print(count)
# 【1】定义一个字典 ---> 又保存了我们的正确的登录信息
# {'dream':"521","hope":"369"} ---> 字典取值 --- get()
# {"dream":["dream","521"]} ---> 把列表取出来 --> 在进行解压赋值
# 【2】两个输入框 ---> 输入用户名和密码
# 字符串 ---> 字典中的键 ---> 直接根据键取值 --->  成员运算

# 【3】多用户登录
# 【3.1】有一个信息字典
# 先判断有没有键 ---
# 没有键
# 去字典中取出密码
if not 'dream' in user_dict:
    print(f"登录失败")
pwd = user_dict.get('key')

# 模拟登录

标签:username,True,程序,用户,运算符,result,print,input,交互
From: https://www.cnblogs.com/song1002/p/18107363

相关文章

  • 微信小程序 图片压缩
    主要是通过canvas进行压缩兼容wx.compressImageAPIwx.compressImage还没测试,canvas缩放宽高比才能达到压缩utils/compressImage.js//compressImage.js/***@param{object}img包含path:图片的path,size:图片的大小*@param{object}canvascanvas对象*@param{n......
  • 03-数据库的用户管理
    一、创建新用户mysql>createuserxjzw@'10.0.0.%'identifiedby'1';QueryOK,0rowsaffected(0.01sec)二、查看当前数据库正在登录的用户mysql>selectuser();+----------------+|user()    |+----------------+|root@localhost|+-----------......
  • 程序员/后端开发方向Java 跳槽注意事项(简历和面试经验分享)
    程序员/后端开发方向Java跳槽注意事项(简历和面试经验分享)应届生面试经验参考:https://www.cnblogs.com/rainbow-1/p/16779048.html简历:1、个人感觉还是要写真话,包装的内容要有一定的基础,问起来能够对答几个回合。2、基本信息最好直接写年龄,而不是出生年月。跳槽简历最好标明当......
  • JAVA编程基础与面向对象程序设计(基础)
    1.1标识符与命名规范 标识符:java中的类,方法,变量,包命名的符号。标识符规则(1)只能由字母,数字,下划线,美元符号组成,并且不能一数字开头。(2)java标识符大小写敏感,长度无限制。(3)标识符不可以是java的关键字与保留字。关键字:java中预先定义好的一些有特别意义的单词,它们构......
  • GIS用户的Deepin V23系统使用记录
    一、系统安装:截止到2024年3月31日,Deepin最新版本为Deepinv23Beta3。在各种软件源下载系统ISO安装,个人是在清华源。1.准备一个U盘或者移动硬盘,安装好Ventoy,把Deepin的ISO放进去,这样,就制作好了系统启动盘。2.推荐为Deepin系统单独准备一块硬盘,从Ventoy启动之后,选择Deepinv23的......
  • 老鹰捉小鸡 c++编程参考程序(一本通51.
    #include<bits/stdc++.h>usingnamespacestd;intmain(){   inti,j,a[6],n;//定义整形变量   for(i=1;i<6;i++)//循环      a[i]=i;   i=1;   cout<<i<<":"<<"";//输出i   for(j=1;j<6;j++)//再循环      cout<......
  • java毕业设计基于微信公交查询小程序设计与实现
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着移动互联网技术的飞速发展,智能手机已经成为人们日常生活中不可或缺的一部分。微信作为国内领先的即时通讯软件,其小程序功能为用户提供了便捷的服务和......
  • TransformControls 是 Three.js 中的一个类,用于在网页中进行 3D 场景中物体的交互式操
    demo案例TransformControls是Three.js中的一个类,用于在网页中进行3D场景中物体的交互式操作。让我们来详细讲解它的输入参数、输出、属性和方法:输入参数:TransformControls构造函数通常接受两个参数:camera(THREE.Camera):用于渲染场景的摄像机。这个参数是必需的。......
  • WinForm 程序中控件坐标之间的转换
    控件坐标系和屏幕坐标系之间的转换:如果要将一个控件上的点(例如Label或Button)的坐标(x,y)转换为屏幕上的点(x1,y1),可以使用Control.PointToScreen方法。例如:PointcontrolPoint=newPoint(x,y);PointscreenPoint=control1.PointToScreen(controlPoint);屏幕坐标......
  • 【全开源】V8黑色陪玩高端小程序源码陪练APP源码H5公众号源码电竞系统比心源码_博纳软
    陪玩高端小程序源码陪练APP源码H5公众号源码电竞系统比心源码——打造专业电竞陪玩平台的首选在电竞行业蓬勃发展的今天,陪玩服务逐渐成为了电竞爱好者们的新宠。为了满足市场需求,我们推出了陪玩高端小程序源码、陪练APP源码、H5公众号源码以及电竞系统比心源码,为您打造专业电......