# 1.你所使⽤过的⽂本编辑器有哪些
# 其中Typora有何特点并简单列举⼏个语法功能
"""
答:文本编辑器:记事本,typora,notepad++,
typora 特点:可以使用markdown语法,快速生成表格,个体文字添加链接,快速改变文本格式,引用各种程序的代码
#一级标题
!()[]引入文件
www.baidu.com可以添加外部链接
```+编程语言 引入代码行
[文字][外部链接]给问及添加外部链接
加号或减号 空格 文字可以快速产生出列表
> 引入快元素
|字段名|字段名| 生成表格
ctrl+/ 查看源代码
$$ 引入数学公式
*** 水平线
<u></u>下划线
:表情单词+: 表情
"""
# 2.什么是编程语⾔,编程的本质是什么
"""
答:编程语言是将人类能够理解的语言计算机能够识别并运行
编程的本质是程序员将自己的思维逻辑和想法用计算机能够读懂的语言写下来的过程。编程的结果是产生一堆文件。
"""
# 3.计算机五⼤组成部分及各⾃主要功能
"""
答:
1控制器:它的基本功能是从内存取指令和执行指令控制器通过地址访问存储器、逐条取出选中单元指令,分析指令,并根据指令产生的控制信号作用于其它各部件来完成指令要求的工作。
2运算器它的功能是完成算术运算和逻辑运算。算术运算是指加、减、乘、除及它们的复合运算。而逻辑运算是指“与”、“或”、“非”等逻辑比较和逻辑判断等操作。在计算机中,任何复杂运算都转化为基本的算术与逻辑运算,然后在运算器中完成。
控制器+运算器=cpu
CPU,它是整个计算机的核心部件,是计算机的“大脑”。它控制了计算机的运算、处理、输入和输出等工作。
3储存器
存放数据分为内存和外存。
内存:基于电工作 存取数据非常快速,但是断电后数据会立刻失效。类似人的短期记忆。
外存:不基于电工作,存取数据的速度会比较慢,但是可以永久的保存数据。eg:u盘 磁带 硬盘 固态等。
4输入设备
从计算机外部向计算机内部传送信息的装备常用的输入设备有键盘、鼠标、光笔、扫描仪、数字化仪、条形码阅读器等。
5输出设备
计算机的处理结果传送到计算机外部供计算机用户使用的设置。常见打印机、显示器、音响等。
"""
# 4.计算机三⼤核⼼硬件及详述三者⼯作关系
"""
答:
1CPU,它是整个计算机的核心部件,是计算机的“大脑”。它控制了计算机的运算、处理、输入和输出等工作。
主要有4、8、16、32、64位处理器。程序要想执行必须有cpu的参与
2内存:在计算机的组成结构中有一个很重要的部分是存储器。它是用来存储程序和数据的部件。
对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。 存取数据的速度极快,主要与cpu配合使用。
3硬盘:作为计算机系统的数据存储器,容量是硬盘最主要的参数。
硬盘的容量以兆字节(MB)或千兆字节(GB)为单位,1GB=1024MB,1TB=1024GB。可以长久保存数据。
内存通过读取硬盘中的文件存到内存中,然后在cpu内执行运算,返回的数据在内存中。内存的执行效率比硬盘快很多只要运行的程序产生数据第一时间肯定在内存中。
"""
# 5.简述计算机底层存储数据原理及编程语⾔发展史、分类
"""
答:
读取数据:通过内存调用硬盘中的文件存到内存中,然后cpu进行执行读取操作。
存取数据:通过内存和cpu进行读取到数据再用内存写入到硬盘中。
语言发展史:
机器语言
第一代计算机语言。机器语言是用二进制代码
优点:
1.能够被机器直接运行
2.灵活
3.速度非常快
缺点:
1.不便于阅读
2.学习难度大
3.很难确保程序的正确性、高效性
4.争对某一种特定的计算机,移植性差,重用性差
汇编语言
机器语言由纯粹的0和1构成,十分复杂,不方便阅读和修改,也容易产生错误。程序员们很快就发现了使用机器语言带来的麻烦,它们难于辨别和记忆,给整个产业的发展带来了障碍,于是汇编语言产生了。
汇编语言, 即第二代计算机语言,用一些容易理解和记忆的缩写单词来代替一些特定的指令。优点
1.可以轻松读取存储器状态及硬件I/O接口信息。
2.代码少了很多编译的环节,可以准确的被执行。
3.可扩张性很高,学习难度有所降低,开发效率有所提高。
缺点
1.代码比较单调,特殊指令很少,代码冗长以及编写困难,学习难度大。
2.汇编仍需要自己去调用存储器存取设备,容易出现BUG,调试比较困难
3.后期维护需要花费大量的时间。
4.代码兼容性,比较依赖特定的计算机硬件。
高级语言
在编程语言经历了机器语言,汇编语言等更新之后,人们发现了限制程序推广的关键因素——程序的可移植性。需要设计一个能够不依赖于计算机硬件,能够在不同机器上运行的程序。这样可以免去很多编程的重复过程,提高效率,同时这种语言又要接近于数学语言或人的自然语言。
优点
1.接近于自然语言与数学容易为人们掌握。
2.独立于机器,有一定的通用性。
缺点
1.不能直接识别和执行高级语言编写的程序。
2用高级语言编写的程序大大提高了编写效率。
"""
# 6.python解释器版本特点,如何实现多版本共存
"""
答:
python2x版本比较老使用print、input、range等方法都与python3x都点出入python3x把python2x的优点都继承了下来。python是弱语言语法比别的语言简单。
多版本共存:通过给每个不同版本的python解释器重新命名添加环境变量,调用时只需要调用语言的版本就可以运行不同版本的解释器
"""
# 7.常⻅的编程软件有哪些,你更倾向于哪个简单说说缘由
"""
答:常见的编程软件:pycharm、vscode、sublime text
我更倾向于pycharm因为调用工具时可以直接引入库文件比较简单不与要去官网查找,获得智能帮助PyCharm知道你的代码的一切。依靠智能代码完成,动态错误检查和快速修复,简单的项目导航等等。
"""
# 8.什么是注释,python中如何编写注释
"""
答:注释是解释语句的文字,注释在代码运行中不起任何作用
python注释:
单行注释#
多行注释
''''''和""""""
"""
# 9.什么是变量、如何定义变量、阐述内部本质
"""
答:变量:
从形式上看,为独一无二的名字
从底层上看,程序中的数据放在内存条中,变量名就是内存中的名字
name=123
在硬盘中开辟一块区域来存取数据123然后把他的地址绑定在内存地址
"""
# 10.变量的命名规范与命名⻛格
"""
变量的命名:
标识符不能和 Python 关键字相同。
标识符中的字母是严格区分大小写的。
以下划线开头的标识符有特殊含义,除非特定场景需要,应避免使用以下划线开头的标识符。
标识符可以是汉字。但我们应尽量避免使用汉字作为标识符,这会避免遇到很多没必要的错误
风格:
1.下划线式 python推荐使用
变量名中单词很多 彼此使用下划线隔开
2驼峰体式 JS推荐使用
标识符是由字母(A–Z 和 a–z)、下划线和数字组成。如果标识符中出现除了这 3 类字符之外的其他字符,就肯定是不合法标识符。
标识符的第一个字符不能是数字。
标识符不能和 Python 关键字相同。
标识符中的字母是严格区分大小写的。
以下划线开头的标识符有特殊含义,除非特定场景需要,应避免使用以下划线开头的标识符。
标识符可以是汉字。但我们应尽量避免使用汉字作为标识符,这会避免遇到很多没必要的错误
"""
# 11.什么是垃圾数据,简单聊聊python中的垃圾回收机制
"""
答:垃圾文件是没有绑定内存地址的数据 数据身上会有计数值不为0 时就不是垃圾数据。
垃圾回收机制主要有:
引用计数和标记清除以及分代回收
引用计数为当第定义一个数据时计算机会给数据一个计数器,来判定数据被引用了几次当标记为0时就为垃圾数据
标记清除当内存达到临界值时,程序会自动停止,然后扫面程序中所有的数据,并且给只产生循环引用的数据打上标志之后一次性清楚。
分代回收分代回收会把数据根据使用频率分为0代1代2代数据然后根据代数越低扫描的频率越低
"""
# 12.列举你所知道的python基本数据类型及各⾃表现形式
"""
答:
数据类型之整型int
整型(int) - 通常被称为是整型或整数,是正或负整数,不带小数点。
数据类型之浮点型float
浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
数据类型之字符串str
字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。
创建字符串很简单,只要为变量分配一个值即可
数据类型之列表list
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
数据类型之字典dict
字典是另一种可变容器模型,且可存储任意类型对象。
1.字典文字描述
大括号括起来 内部可以存放多个数据 数据的组织形式是K:V键值对
键值对与键值对之间逗号隔开
K是对V的描述性性质的信息(解释说明) 一般都是字符串类型
V是真正的数据值 可以是任意数据类型
2.按K取值
字典只能按K取值 因为字典是无序的 没有索引的概念
d = {key1 : value1, key2 : value2, key3 : value3 }
基本数据类型布尔值bool
python中数据自带布尔值
布尔值false:0、none、[]、{}、()
布尔值true:除了上面的
布尔值的变量名一般以is开头
is_alive = ture
基本数据类型元组tuple
元组(tuple)与列表类似,不同之处,元组的元素不能修改。元组写在小括号()中,数据值与数据值用逗号(,)隔开可以是任何数据类型。
t1 = (110, 120, 130, 'body')
t2 = (110, 140, 'sex')
基本数据类型集合set
集合是无序和无索引的集合。在 Python 中,集合用花括号编写。
集合只能用于去重和关系运算。
集合中的数据只能是不可变类型
thisset = {"apple", "banana", "cherry"}
"""
"""
1.编写⽤户识别程序
要求:
可循环根据⽤户输⼊的姓名不同输出不同的身份信息
添加程序结束功能(如⽤户输⼊字⺟q直接结束识别程序)
jason:扫地僧 tony:洗碗⼯ kevin:服务员 jack:配菜员 其他:未识别
"""
#
# user_data={"jason":"扫地僧", "tony":"洗碗⼯","kevin":"服务员","jack":"配菜员"}
# while 1:
# user=input('请输入用户名字来查看身份信息,输入q结束\n')
# if user == 'q':
# break
# if user in user_data:
# print(user_data[user])
# else:
# print('未识别,请重新输入')
"""
2.利⽤for循环及range⽅法⾃动⽣成链家⼆⼿房多⻚数据⽹址(⼗条以
上即可)
初始⽹址:https://sh.lianjia.com/ershoufang/
"""
"""
for i in range(1,11):
if i ==1:
print('https://sh.lianjia.com/ershoufang/')
else:
print(f"https://sh.lianjia.com/ershoufang/pg{i}/")
"""
"""
3.编写⽤户登录程序
温馨提示:
⽤户名与密码来源于字符串source_data = 'jason|123'
想办法从中拆分出⽤户名和密码⽤于后续账户信息⽐对
普通要求:
1.验证失败情况下可⼀直循环验证 成功则直接退出
拔⾼练习:
1.只允许三次失败机会
2.登录成功后进⼊内层循环,⽤户输⼊任何指令利⽤格式化输出
打印正在执⾏该⽤户指令即可,直到⽤户输⼊字⺟q退出内层循环
"""
# 普通练习
"""
source_data = 'jason|123'
while 1:
name=input('请输入用户名').strip()
password=input('输入密码').strip()
user_name,user_password=source_data.split("|")
if user_name==name and user_password==password:
print("登陆成功")
break
else:
print("登陆失败,用户名或密码错误\n请重新输入")
"""
# 拔高练习
"""
source_data = 'jason|123'
is_go=3
while is_go:
name = input('请输入用户名').strip()
password = input('输入密码').strip()
user_name, user_password = source_data.split("|")
if user_name == name and user_password == password:
print("登陆成功")
while is_go:
zhiling=input('请输入您的指令,退出请输入字母q')
print(f'您的指令为{zhiling}')
if zhiling=='q':
print('您已退出指令')
break
else:
print("登陆失败,用户名或密码错误请重新输入")
is_go -= 1
print(f'还剩下{is_go}机会')
if is_go== 0:
is_go=0
"""