首页 > 编程语言 >05程序与用户之间进行交互_基本运算符_流程控制语句

05程序与用户之间进行交互_基本运算符_流程控制语句

时间:2024-03-29 18:00:06浏览次数:23  
标签:语句 username 05 运算符 result print input True

【一】程序与用户之间进行交互

【1】什么是与用户交互

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

【二】如何与用户交互

【1】输入(input)

  • 用户输入一些内容,用户按下回车键后,input函数会返回用户输入的内容
  • input接受所有的数据类型都是str类型
username = input("请输入你的用户名:>>>")
password = input('请输入你的密码:>>>')

print(username, type(username))  # input接受的所有数据类型都是str类型
print(password, type(password))  # input接受的所有数据类型都是str类型
username = input('请输入您的用户名:')
# 请输入您的用户名:Dream
# username = "Dream"

password = input('请输入您的密码:')
# 请输入您的密码:521
# password = "521"

【2】输出(print)

(1)简单字符串

# 输出示例
print("Hello, World!")  # 输出简单的字符串
# Hello, World!

(2)多个变量输出

name = "dream"
age = 18
print(f"my name is {name},my age is {age}")
结果:
 # my name is dream, my age is 18

(3)默认 end 参数

  • print 函数也有一些可选参数,例如 end 参数用于指定输出的结尾字符,默认为换行符"\n"(代表换行)
# end 参数示例
print("Hello", end="")
print(", World!")  # 输出结果为:Hello, World!
  • 可以将end参数的值改成任意其它字符
print("aaaa",end='')
print("bbbb",end='&')
print("cccc",end='@')
#整体输出结果为:aaaabbbb&cccc@

【三】运算符

【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

【四】比较运算符

  • 比较运算用来对两个值进行比较,返回的是布尔值True和False

【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

【五】赋值运算符

【1】增量赋值

(1)介绍

  • 增量赋值运算符用于将变量与右侧的表达式相结合,并将结果赋值给变量

(2)使用

x = 9
y = 2

# 等同于 x = x + y
x += y
print(x)  # 输出:11

【2】链式赋值

(1)介绍

  • 链式赋值允许在单一语句中给多个变量赋值。这样可以减少代码行数,提高代码的紧凑性。

(2)使用

a = b = c = 5
print(a, b, c)  # 输出:5 5 5

【3】交叉赋值

x = 9
y = 2

# 交叉赋值
x, y = y, x
print(x, y)  # 输出:2 9
  • 在上述例子中,x, y = y, x 表示将变量 x 的值赋给 y,同时将变量 y 的值赋给 x,实现了两个变量值的交换。

【4】解压赋值

coordinates = (3, 5)

# 解压赋值
x, y = coordinates
print(x, y)  # 输出:3 5

【六】逻辑运算符

【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
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 > 0y > 0z > 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 > 0y > 0z > 0 至少有一个条件为 True,因为 x > 0True,所以结果为 True

5】优先级 not>and>or

  • 在逻辑运算中,not 的优先级最高,其次是 and,最后是 or
  • 当表达式中同时包含这三种运算符时,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

【七】成员运算符

【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
  • 这两个运算符可以用于字符串、列表、元组等序列类型。

【八】身份运算符

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

【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(内存地址)是否相同
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

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

【一】流程控制语句介绍

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

【二】什么是顺序结构

  • 在计算机程序中,顺序结构是指按照代码书写的顺序,一条语句接着一条语句执行,没有跳过、重复或其他特殊的结构。
  • 程序按照从上到下的顺序逐行执行

【三】顺序结构的作用

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

【四】单分支结构(if)

  • 单分支结构指的是程序根据条件的成立与否,执行两个分支中的其中一个。
  • 常见的单分支结构语法是if语句。

(1)使用

age = 18
if age >= 18:
    print("你已成年,可以参加投票。")

【五】双分支结构(if-else)

(1)使用

age = 16
if age >= 18:
    print("你已成年,可以参加投票。")
else:
    print("你还未成年,不能参加投票。")

【六】多分支结构(if-elif-else)

(1)使用

score = 85
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
else:
    print("一般")

【七】多层嵌套结构

(1)使用

age = 25
if age >= 18:
    if age <= 25:
        print("年龄在18到25岁之间。")
    else:
        print("年龄大于25岁。")
else:
    print("年龄小于18岁。")

【练习题】

# 前提:创建一个字典存了用户的用户名和密码
# 有一个输入框输入用户名和密码
# 有了用户名以后去去字典中查密码
# 有了用户名但是字典中不存在的情况,打印当前用户名不存在
# 将字典中的密码和输入的密码进行比对
# 一致打印登陆成功
# 否则提示登录失败
user={"李四":"123456"}
username = input("请输入用户名:")
password = input("请输入密码:")
if username not in user:
    print(f"当前用户 {username} 不存在")
elif password ==user.get(username):
    print("登录成功")
else:
    print("密码错误")

【1】登录列表

# 定义一个列表 [用户名,密码]
# 两个输入框 --- > 用户名和密码
# ---> 用户名和密码是否正确
# 正确 :登陆成功
# 失败 : 再输一次
# 在失败 : 登录失败
# 【1】方式一 : 解包
username_true, password_true = ['dream', '521']

# 【2】两个输入框 ---> 输入用户名和密码
username_input = input("请输入您的用户名 :>>>> ")
password_input = input("请输入您的密  码 :>>>> ")

# 【3】验证用户名和密码是否正确
if username_input == username_true and password_true == password_input:
    # 用户名和密码正确,打印登陆成功
    print(f"{username_input} :>>>> 登陆成功!")

# 【4】失败了 再输一次
else:
    print(f"这是最后一次机会啦!")
    username_input = input("请输入您的用户名 :>>>> ")
    password_input = input("请输入您的密  码 :>>>> ")
    if username_input == username_true and password_true == password_input:
        # 用户名和密码正确,打印登陆成功
        print(f"{username_input} :>>>> 登陆成功!")
    else:
        print(f"{username_input} :>>>> 用户名或密码错误!")
# 【1】定义一个列表 [用户名,密码]
user_pwd_list = ['dream', '521']
username_true = user_pwd_list[0]
password_true = user_pwd_list[1]

# 【2】两个输入框 ---> 输入用户名和密码
username_input = input("请输入您的用户名 :>>>> ")
password_input = input("请输入您的密  码 :>>>> ")

# 【3】验证用户名和密码是否正确
if username_input == username_true and password_true == password_input:
    # 用户名和密码正确,打印登陆成功
    print(f"{username_input} :>>>> 登陆成功!")

# 【4】失败了 再输一次
else:
    print(f"这是最后一次机会啦!")
    username_input = input("请输入您的用户名 :>>>> ")
    password_input = input("请输入您的密  码 :>>>> ")
    if username_input == username_true and password_true == password_input:
        # 用户名和密码正确,打印登陆成功
        print(f"{username_input} :>>>> 登陆成功!")
    else:
        print(f"{username_input} :>>>> 用户名或密码错误!")

标签:语句,username,05,运算符,result,print,input,True
From: https://www.cnblogs.com/chosen-yn/p/18104318

相关文章

  • [AHOI2005] SHUFFLE 洗牌
    这是一道逆元的模板题。看到题,首先找下规律:首先想到是否存在循环,即经过多次洗牌后回到原状态的情况,但手玩了几组以后发现有循环但没有规律,只能知道循环节长度小于等于\(n\),显然会\(TLE\);所以对于一些循环节较长的数据很容易被卡掉(比如这组:900000000011)代码转载自@Ish......
  • MySQL查询语句like_between_and_in
    数据表创建DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`creatDate`datetimeDEFAULTNULLCOMMENT'创建时间',`userName`varchar(20)DEFAULTNULLCOMMENT'用户名',`pwd`varchar(36)DEFAULTNULL......
  • MySQL单表操作学习DDL_DML_DQL语句,以及模糊查询
    1.DDL语句CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`creatDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyi......
  • MySQL查询语句like_between_and_in
    1、创建数据表——DDL语句CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULLCOMMENT'创建时间',`userName`varchar(20)DEFAULTNULLCOMMENT'用户名',`pwd`varchar(36)DEFAUL......
  • C语言运算符和表达式——增1和减1运算符
    目录增1和减1运算符一元运算符前缀增1/减1运算符后缀增1/减1运算符前缀与后缀对变量和表达式的影响稍微复杂一点的例子增1和减1运算符的优缺点增1和减1运算符增1运算符(Increment)++*使变量的值增加1个单位减1运算符(Decrement)--*使变量的值减少1个单位注意:操作数......
  • 程序与用户交互&基本运算符
    目的与程序之间交流输入输出如何交互输入:input弹出输入框:input()弹出提示信息:input("pleaseinput:")弹出提示信息,并返回:user=input("....:"),print(user)注意点:输入的内容永远是字符串,需要强制转化为所需要类型。代码num1=input("pleaseinput:")num2=in......
  • 05 面向对象编程
    java的核心思想就是OOP,面向对象编程。面向对象面向对象编程:OOP(Object-OrientedProgramming)面向对象的本质就是:以类的方式组织代码,以对象的封装数据。抽象三大特性:封装继承多态从认识论角度考虑:是现有对象后又类。对象,是具体的事物。类,是抽象的,是对对象的抽象。从代......
  • P6105 [Ynoi2010] y-fast trie
    [Ynoi2010]y-fasttrie-洛谷这道题让我学到了一些之前看过但没总结出来的\(trick\)显然加入集合中数要先取模对于\(x+y\geqC\)的部分,直接取最大和次大即可对于\(x+y<C\)的部分,我们先考虑暴力枚举\(x\),二分找到每一个\(y\)取最优即可若此题离线,考......
  • C/C++ 语言中的 ​if...else if...else 语句
    C/C++语言中的​if...elseif...else语句1.`if`statement2.`if...else`statement3.`if...elseif...else`statementReferences1.ifstatementThesyntaxoftheifstatementis:if(condition){//bodyofifstatement}Thecodeins......
  • 一条SQL查询语句是如何执行的
    一条SQL查询语句是如何执行的?连接器1、先连接到数据库中,这时候工作的是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接。查询缓存2、连接建立完成后,就可以执行select语句,执行逻辑就到了第二步,查询缓存。MySQL拿到一个查询后,会先到查询缓存看看,之前是不是执......