首页 > 其他分享 >基本运算符及流程控制语句(顺序、分支、循环结构)

基本运算符及流程控制语句(顺序、分支、循环结构)

时间:2024-03-29 21:12:34浏览次数:23  
标签:语句 name 流程 运算符 num print input score

昨日内容回顾

【一】八大基本数据类型

# 【1】数字类型
# (1)整数类型(int)
# (2)浮点数类型(float)
# 【2】字符串类型(str)
# 【3】列表类型(list)
# 【4】布尔类型(bool)
# 【5】字典类型(dict)
# 【6】集合类型(set)
# 【7】元组类型(tuple\)

# 【二】整数类型
# 能代表整数,代表大部分数字
# age = 1

# 【三】浮点数类型
# 其实就是小数类型,比整数类型精确度高
# salary = 1000.00

# 【四】字符串类型
# 描述性的文本信息
# 两个双引号 / 单引号 / 三个双引号 / 单引号
# name = "gdy" / name = 'gdy'
# 三个单引号和是哪个双引号 ---> 是多行注释

# 在双引号中不能单独出现一个双引号,会造成语法错乱

# 字符串的格式化输出
# %s / %d 占位
# %s 可以占任意类型的数据  ---> 文本类型的数据
# %d 只能占数字类型
name = "gdy"
print("my name is %s"%(name))


# format 格式化输出替换
# 按位置传参
print("my name is {}".format(name))
# 按关键字传参
print("my name is{name}".format(name=name))
# f + {}
print(f"my name is {name}")
print(f'''my name is {name}''')

# 字符串支持索引取值
# 正索引 从0开始到 总长度的 -1
# 负索引 从-1开始 到-总长度
# 计算字符串的长度 len ()
# name [索引坐标]

# 【四】列表类型
# name_list = [任意元素类型]
# 列表是允许按照索引位置取值,也可以将当前索引位置的元素替换
num_list = [1,2,3]
print(num_list[0])
num_list[0] = 9
print(num_list[0])
print(num_list)

# 【五】布尔类型
# True False
# 在python中为假的情况
# False、 空的值(空的字符串、列表、元组)、数字0

# 【六】字典
# 语法:key:value 存储到{}
# {"key":"value"}
# key:可以是任意类型,但是不建议,尽量放不可变数据类型
# 如:字符串 数字
name = "gdy"
name[0] = "hyt"         #不可修改

# 【七】元组数据类型
# num_tuple = (1,2,3)
# 元组中只有一个元素的时候一定要加 逗号,
num = ("1")
print(num,type(num))       # 1 <class 'str'>
num = ("1",)
print(num, type(num))       # ('1',) <class 'tuple'>

# 【八】集合数据类型
# 具有去重和无序性
# 使用集合的场景 ---> 利用它的去重性,去除一样的数据

今日内容

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

# 输入
# 输出

【二】python中会如何交互

# 【1】输入
# input接受的所有数据类型都是str类型

# (1)弹出输入框
# input()

# (2)提示信息
# print("请输入用户名")
# input()

# (3)提示输入信息并且获取到输入的信息
# 提示输入框
username = input("请输入用户名:")
# 用变量接收到输入的内容
print(username)

# (4) 输入的内容永远是字符串
username = input("请输入用户名: ")
# 用变量接收到输入的内容
print(username,type(username))      # gdy <class 'str'>

# (5)数据之间进行运算需要转换数据类型
num_1 = input("请输入数字1:>>> ")
num_2 = input("请输入数字2:>>> ")
result = num_1 + num_2                  # 11 <class 'str'>
# 强制转换数据类型
result = int(num_1) + int(num_2)        # 2 <class 'int'>            
print(result,type(result))

# 【2】输出
# 直接打印变量或者字符串等
name = "gdy"
print(f"my name is {name}")

# print 可以修改默认的尾缀 end='\n'
print(name,end='$')

【三】基本运算符

# 【一】算术运算符
# + - * / % // **
# print(1 + 1)
# print(1 - 1)

# print(2 * 3)

# print(6 / 2)

# print(5 % 2)

# print(9 // 2)

# print(9 ** 2)

# 【二】比较运算符
# < > <= >= == !=
# 在python中相等需要两个==
print(1 == 1)
print(2 > 1)
# 【三】赋值运算符
# = += -= *= /= %= //= **=
num_one = 2
num_two = num_one + 1
num_two += num_one
print(num_two)              # 5

# 链式赋值
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)

x,y = (1,2,3)           # 位置变量少了不行
print(x,y)

x,y,z = (1,2)           # 位置变量多了也不行
print(x,y,z)

x,y,_ = (1,2)           # 可以使用下划线代替多余元素
print(y)

# 【四】逻辑运算符
# 与 或 非
# and or not
# and:两者都为真则为真
print(True and 0)
# or:两者有一为真则为真
print(True or 0)
# not:取反
print(not 1)
# 如果出现多个 逻辑运算符连在一起是,则看优先级
# 优先级:先 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")

# 【五】成员运算符
# 用来判断当前成员是否在另一个成员中,并且返回的值为布尔值
# in 
# not in
# 这两个运算符可以用于字符串、列表、元组等序列类型
num_list = [1,2,3,4,5,6,7,8,9,10]
print(1 in num_list)
print(11 in num_list)
print(11 not in num_list)
# 推荐使用not in 

# 【六】身份运算符
# 判断一个对象是否是另一个对象
a = [1,2,3]
b = a
print(a is b)                # b是a来的,所以b就是a
c = [1,2,3]
print(a is c)                # c和a都是独立的内存空间,所以a不是c
print(a is not c)
print(id(a))
print(id(b))
print(id(c))
# == 和 is 的区别
# 比较运算符,比较的值相等
# == 比较的是 值是否相等
# is 比较的是 内存空间地址是否一致
# 两个的变量的值一样,但是他们的内存空间地址不一定一样

【四】流程控制语句

【1】什么是流程控制语句

# 用来控制程序执行的条件
# 控制条件的方式有很多
# 流程结构:
# 顺序结构(依次向下执行)、
# 分支结构(相当于给了两个条件来进行判断)、
# 循环结构(直到条件为否才结束当前循环)

【2】顺序结构

# 程序按照顺序一次执行,直到报错或者程序条件为否的情况终止

【3】分支结构

  • 条件数可以是任意表达式,但是执行结构必须为布尔类型
  • 在if判断中所有的数据类型都会转换成布尔类型
    • None,0 , 空(空字符串,空列表,空字典等)三种情况下转换成的布尔类型为flash
    • 其余均为true
# 可以在执行程序的过程中加一些判断条件
# 只有判断条件为真的时候才会执行代码
# 【1】单分支结构
# if 条件:
# 四个空格 代码

score = 95
if score >= 90:
    #这个区域的代码称为代码体/代码块
    print(f"成绩为{score},优秀")

# 单分支结构会依次向下执行代码,并且在遇到条件为真泽执行当前代码

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

# 【3】多分支结构
# if 条件:
# 四个空格 代码
# elif:
# 四个空格 代码
# elif:
# 四个空格 代码
# else:
# 四个空格 代码

score = 99
if score >= 90:
    print(f"成绩为{score}: 优秀")
elif score >= 80:
    print(f"成绩为{score}: 良好")
elif score >= 60:
    print(f"成绩为{score}: 及格")
else :
    if score >= 50:
        print(f"成绩为{score}: 还差一点及格")
    else:
        print(f"成绩为{score}: >>>不及格")

【4】循环结构

# 一个条件不符合当前状态时,还会进行第二次判断
# 可用于多次密码尝试
# while 条件(循环停止的条件):
# 代码体

count = 0
while count < 150:
    count += 10
    if count == 60:
        print(f"及格")
    elif count == 90:
        print(f"优秀")
        continue        # 不再向下执行代码,而是返回while重新循环
    elif count == 100:
        print(f"满分")
        break           # 立即结束当前循环,不在继续循环
    print(count)

练习

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

#方案一:
user_data = {"gdy":"123","hyt":"456"}
username_input = input("请输入用户名:")
password_input = input("请输入密码:")

if username_input  in user_data:
    if password_input == user_data[username_input]:
        print("登录成功")
    else:
        print("密码错误")
else:
    print(f"当前用户{username_input}不存在")
    
    
#方案二
user_data = {"gdy":"123","hyt":"456"}
username_input = input("请输入用户名:")
password_input = input("请输入密码:")

if username_input not in user_data:
    print(f"当前用户{username_input}不存在")
if password_input == user_data.get(username_input):
    print(f"登录成功")
else:
    print(f"密码错误")

标签:语句,name,流程,运算符,num,print,input,score
From: https://www.cnblogs.com/wycmjd/p/18104620

相关文章

  • JavaSE If执行流程 案例分析
      在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,   我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序   来实现我们要完成的功能。      顺序结构(最常用):代码从上往下一行一行执行publicc......
  • 运算符,分支了解
    1.关于字典类型#{"key":"value"}#key:可以是任意类型,但是不建议放,不可变数据类型,字符串2.元组类型(tuple)2.1作用元组(tuple)是一种不可变的序列类型,类似于列表,用于存储多个有序元素。元组与列表的主要区别在于元组的元素不能被修改、删除或添加,是不可变的数据类型。......
  • 05程序与用户之间进行交互_基本运算符_流程控制语句
    【一】程序与用户之间进行交互【1】什么是与用户交互交互的本质就是输入、输出用户交互就是人往计算机中input/输入数据,计算机print/输出结果【二】如何与用户交互【1】输入(input)用户输入一些内容,用户按下回车键后,input函数会返回用户输入的内容input接受所有的数据类型......
  • 会计业务流程优化:争议中的效率革命
    会计业务流程优化:争议中的效率革命一、会计业务流程的现状与挑战1、传统会计业务流程的僵化传统的会计业务流程往往繁琐而低效,涉及大量手工操作和纸质文档。这不仅增加了出错的可能性,还降低了工作效率,无法适应现代商业环境对速度和准确性的要求。2、信息化时代的冲击随着......
  • MySQL查询语句like_between_and_in
    数据表创建DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`creatDate`datetimeDEFAULTNULLCOMMENT'创建时间',`userName`varchar(20)DEFAULTNULLCOMMENT'用户名',`pwd`varchar(36)DEFAULTNULL......
  • Launcher 启动流程
    Launcher启动过程介绍Launcher是一个应用进程,用来显示系统中已经安装的应用程序Launcher在启动过程中会请求PackageManagerService返回系统中已经安装的应用程序信息,并将这些信息封装成一个快捷图标显示在系统屏幕上,这样用户就能点击这些快捷图标来启动相应的应用程序。......
  • 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个单位注意:操作数......
  • ESP32-P4 --- 启动流程
     PROCPU执行一级引导程序(内含复位向量代码)根据复位原因及GPIO_STRAP_REG寄存器的值确定启动模式,比如UART下载模式、从FLASH加载二级引导程序执行加载二级引导程序,并执行入口函数call_start_cpu0()根据分区表的配置,加载应用程序通过应用程序二进制文件的头......