【一】程序与用户之间进行交互
【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 > 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
。
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