练习
1、列举你所知道的python所有基本数据类型及各自特征
- 数字类型
- 整数类型
- 浮点数类型
- 字符串类型
- 列表类型
- 字典类型
- 布尔类型
- 元组类型
- 集合类型
2、说说你所知道的运算符有哪些
【一】算术运算符
【二】比较运算符
【三】赋值运算符
【四】逻辑运算符
【五】成员运算符
【六】身份运算符
3、变量的三大特性以及如何查看变量的三大特性
【1】变量值 变量类型 变量内存地址
- 实际存在的值 值的类型 实际存在的空间地址
- 变量名 = 变量值 内部的原理
- 变量值:就是在内存空间中开辟一块空间存储指定的值
【2】如何查看三大特性
-
变量值:直接通过打印变量名
-
变量类型:type()
-
变量的内存空间地址:ID()
4、列举你所学过的条件语句的语法并介绍
顺序结构(依次向下执行)、
分支结构(相当于给了两个条件来进行判断)、
循环结构(直到条件为否才结束当前循环)
5、==和is的区别
== 和 is 的区别
比较运算符,比较的值相等
== 比较的是 值是否相等
is 比较的是 内存空间地址是否一致
两个的变量的值一样,但是他们的内存空间地址不一定一样
上周回顾
【一】计算机基础
【1】编程和编程语言
-
编程语言就是人与计算机之间交流的媒介
-
编程就是将人类的语言转换为计算机可以识别的语言
【2】计算机的五大组成部分
- 控制器:负责调理硬件的使用
- 运算器:负责处理和计算相关逻辑
- 存储器:内存和硬盘,负责存储数据
- 输入设备:人向计算机内输入内容的媒介,键盘,麦克风
- 输出设备:计算机向人展示处理后的结果所需的媒介 显示器,音响
【3】计算机的三大核心硬件
-
CPU: 控制器 + 运算器:调度和处理系统中的各项任务
-
内存:短暂存储数据,读取速度,但是断电数据就会消失
-
硬盘:持久化存储数据,读取速度相较于内存慢一点,但是断电数据不会消失(硬盘不损坏的前提)
【4】平台
-
我们使用的电脑系统 + 软件
-
我们的硬件 + Windows系统 --->win平台
【5】系统软件和应用软件
- 系统软件:系统自带的软件,如任务管理器、设备管理器、扬声器....
- 应用软件:别人开发好的安装包,我们通过下载安装程序运行的软件
【二】编程语言的发展史
【1】机器语言
- 一堆 01二进制数据
- 开发成本高
- 直接操作计算机底层硬件
【2】汇编语言
- 通过字母进行指定的程序编程
- 对比机器语言优化了部分
- 也是可以直接操作计算机底层硬件
【3】高级语言
- 不直接操作底层硬件而是通过其他编码转换为底层计算机语言
(1)编译型语言
- 写完源代码需要编译后才能执行,一旦出错,整个文件必须重新编译才能使用
(2)解释型语言
- 源代码边编译边执行,如果出错,只需要从头编译,遇错直接断开
【三】python语言介绍
【1】创始
- 吉多范罗姆
【2】世界排名
- 1
【3】Python发展史
- 89年开始研发
- 91年第一个版本正式推出
- 10年2.7版本发布
- 16年3.6版本发布
- 目前最高版本3.13
- 使用3.10即可
【4】Python安装
- 官网下载安装包 ---> 安装 ---> 直接下一步 ---> 不要安装在C盘,路径尽量不要中文,全部选项都勾上
【5】多版本Python解释器共存
- 直接复制原来解释器的快捷方式,添加一个副本,改名为他的版本号
【6】pip源
- 换源的目的是为了解决在国内安装第三方包太慢
(1)临时换源
pip install -i 源地址 模块名
(2)永久换源
换一次所有的pip程序对话使用新换的源
【7】pycharm安装
-
无论是在终端还是在python代码中,运行py文件都不方便
-
安装pycharm专业版
【四】python语法
【1】注释
- 单引号和双引号三引号
【2】变量和常量
-
常量就是特殊的变量
-
变量其实就是表示事物状态或者变化的值
-
语法: 变量名 = 变量值
【3】八大基本数据类型
【1】数字类型
- 整数类型 int
- 变量名 = 整数值
- 浮点数类型 float
- 变量名 = 浮点数值
【2】字符串类型 str
- 字符串支持索引取值;正索引从0开始,负索引从-1开始
- 字符串虽然支持索引取值但是不支持索引改动值
- 字符串格式化输出语法:
- %s占位 %d只能占数字
- format:字符串内部用{}.format 往前面按位置放内容 {变量名}.format(变量名=变量值)
- f + {}:在{}内部放变量名或者表达式
【3】列表类型 dist
- name = []
- 列表内部可以存放任意的数据类型
- 列表支持索引取值
- 也支持索引替代值
【4】字典类型 dict
- name =
- 建议字典的键 key 是字符串或者数字
- 字典不支持索引取值
- 字典取值方法:
- 字典[]:它的特点事取不到的值就会保存
- 字典.get(key):取不到值就None
【5】布尔类型 bool
- 只需记住结果为假的情况
- 空值,数字0,布尔值false
【6】元组类型 tuple
- name = (元素,) # 要加逗号!
- 元组支持索引取值,但是不支持索引改值
【7】集合类型 set
name = {元素1,元素2}
一般情况下,元素为字符串和数字,因为集合类型的特点就是:无序、去重
【五】程序与用户交互
-
input 语句输入内容
-
print 语句打印 更改后缀 end = '\n'
【六】循环语句
- 顺序结构 分支结构 循环结构
- 顺序结构:从上至下依次执行
- 分支结构:可以产生额外的条件根据条件执行代码
- 循环结构:可以不断的判断当前条件是否符合指定条件
【1】分支结构
(1)单分支
if 条件:
(2)双分支
if 条件:
else:
(3)三分支:
if条件:
elif:
elif:
else:
今日内容
【一】循环结构
(1)while循环
- 语法
while 条件:
# 循环体
- 可以在while循环中定义一个标志位
tag = True
while tag:
username = input("输入:")
if username == "hyt": #只有在输入hyt时才会结束循环
tag = False
# 作业【一】
# 登录(字符串)
# 用户名 密码
# 两个输入框 --- > 用户名和密码
# ---> 用户名和密码是否正确
# 正确 :登陆成功
# 失败 : 再输一次
# 失败 : 再输一次
# 再失败 : 登录失败
username = "gdy"
password = "123"
username_input = input("请输入用户名:") # 创建输入账号栏
password_input = input("请输入密码:") # 创建输入密码栏
if username_input == username and password_input == password: # 判断账号密码是否为真
print(f"登录成功") # 账号密码为真输出
else:
print(f"密码错误,你还有两次机会") # 账号密码为假输出
username_input = input("请输入用户名:")
password_input = input("请输入密码:")
if username_input == username and password_input == password:
print(f"登录成功")
else:
print(f"密码错误,你还有最后一次机会!")
username_input = input("请输入用户名:")
password_input = input("请输入密码:")
if username_input == username and password_input == password:
print(f"登录成功")
else:
print(f"密码错误,你的账号已被锁定,无法重试")
# 作业【二】
# 定义一个列表 [用户名,密码]
# 两个输入框 --- > 用户名和密码
# ---> 用户名和密码是否正确
# 正确 :登陆成功
# 失败 : 再输一次
# 在失败 : 登录失败
# 方案一
user = ["gdy","123"]
username = user[0]
password = user[1]
username_input = input(f"请输入用户名:")
password_input = input(f"请输入密码:")
if username_input == username and password_input == password:
print(f"登录成功")
else:
print(f"密码错误,你还有两次机会")
username_input = input(f"请输入用户名:")
password_input = input(f"请输入密码:")
if username_input == username and password_input == password:
print(f"登录成功")
else:
print(f"密码错误,你还有最后一次机会")
username_input = input(f"请输入用户名: ")
password_input = input(f"请输入密码:")
if username_input == username and password_input == password:
print(f"登录成功")
else:
print(f"密码错误,你的账号已被锁定,无法重试")
# 方案二
# 解包
username,password = ["gdy","123"]
username_input = input(f"请输入你的用户名:")
password_input = input(f"请输入你的密码:")
if username_input == username and password_input == password:
print(f"登录成功")
else:
print(f"输入错误,你还有两次机会")
username_input = input(f"请输入你的用户名:")
password_input = input(f"请输入你的密码:")
if username_input == username and password_input == password:
print(f"登录成功")
else:
print(f"输入错误,你还有一次机会")
username_input = input(f"请输入你的用户名:")
password_input = input(f"请输入你的密码:")
if username_input == username and password_input == password:
print(f"登录成功")
else:
print(f"输入错误,账号已锁定,无法重试")
# 作业【三】
# 定义一个字典 {'key':'value'} ---> 多用户登录功能
# 两个输入框 --- > 用户名和密码
# ---> 用户名和密码是否正确
# 正确 :登陆成功
# 失败 : 再输一次
# 再失败 : 登录失败
user = {"gdy":"123","hyt":"456"}
username = input(f"请输入账号:")
password = input(f"请输入密码:")
if username in user and password == user.get(username):
print(f"登录成功")
else:
print(f"账号密码输入错误,请重新输入!")
username = input(f"请输入账号:")
password = input(f"请输入密码:")
if username in user and password == user.get(username):
print(f"登录成功")
else:
print(f"账号密码输入错误,账号已锁,请联系管理员")
(2)continue
- 语法:
while 条件:
# 循环体
if 条件:
continue # 跳过本次循环,直接进行下一次循环
(3)break
- 语法
while 条件:
# 循环体
if 条件:
break #退出循环
示例
# 登录案例while循环使用break
username = "gdy"
password = "123"
count = 0 # 记录循环验证次数
while count < 3:
username_input = input("请输入你的用户名:")
password_input = input("请输入你的密码:")
if username_input == username and password_input == password:
print("登录成功")
break # 输入正确,结束循环
else:
print("用户名或密码错误!")
count += 1
# 登录案例(while循环嵌套-break)
# while循环嵌套,想要退出每一层,则需要在每一层循环都有break
username = "gdy"
password = "123"
count = 0
while count < 3: # 第一层循环
username_input = input("请输入用户名:")
password_input = input("请输入密码:")
if username_input == username and password_input == password:
print("登录成功")
while True: # 第二层循环
cmd = input("输入:")
if cmd != "10":
break # 用于结束第二层循环
print("100")
break # 用于结束第一层循环
else:
print("用户名或密码错误!")
count += 1
练习
# 程序随机内置一个位于一定范围内的数字作为猜测的结果,由用户猜测此数字。
# 用户每猜测一次,由系统提示猜测结果:太大了、太小了或者猜对了,
# 直到用户猜对结果或者猜测次数用完导致失败。
# 设定一个理想数字比如:66, 让用户三次机会猜数字,如果比66大,则显示猜测的结果大了;
# 如果比66小,则显示猜测的结果小了; 只有等于66,显示猜测结果正确,退出循环。
# 最多三次都没有猜测正确,退出循环,并显示‘都没猜对,继续努力’。
i = 0
try_choices = 3
number = "52"
while i < try_choices:
i += 1
number_input = input(f"请输入你猜测的数字:")
if number_input == number:
print(f"猜对了")
break
elif number_input < number:
print(f"你猜测的数字太小了")
elif number_input > number:
print(f"你猜测的数字太大了")
if i == try_choices:
print(f"你的猜测机会用完了,没猜对")
number_again = input(f"是否重新尝试?请输入y/n:")
if number_again not in ["y","n"]:
print("输入格式错误!")
break
if number_again == "y":
i = 0
continue
else:
print(f"欢迎下次尝试!")
break
(4)for循环
- 语法:
for 循环变量 in 序列
# 循环体
循环变量:它会每次循环时去序列中的一个值
序列:可以是列表、元组、字符串等
示例
fruits = ['apple', 'banana', 'cherry', 'orange', ]
for fruit in fruits:
print(f"当前水果为:", fruit)
print("Lopp finished !")
# 输出结果
# 当前水果为: apple
# 当前水果为: banana
# 当前水果为: cherry
# 当前水果为: orange
# Lopp finished !
(5)range 关键字
- 帮我们生产指定区间内的整数列表
- 顾头不顾尾的取法
print(range(1,5),type(range(1,5)))
# 输出结果
# range(1, 5) <class 'range'>
for i in range(1,5):
print(i)
# 输出结果
# 1 2 3 4
for o in range(5):
print(o)
# 输出结果
# 0 1 2 3 4
(6)死循环
- 无法退出当前循环
- 不要在项目中出现死循环,会造成cpu飙升
示例
while True:
print(1)
标签:username,学习,密码,while,循环,print,input,password,输入
From: https://www.cnblogs.com/wycmjd/p/18109410