昨日内容回顾
【一】八大基本数据类型
# 【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