1、 执行Python 脚本的两种方式
在Windows中执行,通过cmd 进入相应的Python文件(如hello.py)的路径,在cmd中输入python hello.py就可以执行。
通过IDE软件,如pycharm,ctrl+shift+F10执行脚本
在Linux系统中:
在Python文件的开头需要添加python的路径,不清楚路径通过whichis python3 查看
执行:Python3 hello.py
2、 简述位、字节的关系
位(bit)是计算机中最小的单位,8位代表1字节(byte)
3、 简述ascii、unicode、utf–‐8、gbk 的关系
ASCII中每个字符占1个字节,unitcode通常是2个字节,但是如果写的都是英文就会占用过多的空间。UTF-8是可变长字符编码,根据不同数字的大小编码成1-6个字节,通常英文占1个字节,汉字通常占3个字节。GBK编码是中国自己的标准,占2个字节,Windows系统默认中文的就是GBK编码。
4、 请写出“李杰”分别用utf–‐8 和gbk 编码所占的位数
UTF-8:48位(utf-8每个中文占用3个字节,总共6个字节)
GBK:32位(每个中文是2个字节,李杰是4个字节)
验证:(在Python中使用encode可以转换成相应的编码格式)
5、 Pyhton 单行注释和多行注释分别用什么?
Python单行注释用 #
Python多行注释用三对单引号或者三对双引号
6、 声明变量注意事项有那些?
首先变量是以字母下划线开头的,在Python中声明变量最好通过下划线分隔,变量名还需要见名知意,不要使用a b c 等简单的变量来代替。
7、 如何查看变量在内存中的地址?
例如定义了变量name=1
查看name内存地址:
|
|
8、 执行Python 程序时,自动生成的.pyc文件的作用是什么?
.pyc文件是由.py文件经过编译后生成的字节码文件,其加载速度相对于之前的.py文件有所提高,而且还可以实现源码隐藏,以及一定程度上的反编译。
19、写代码
a.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
|
|
b.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
|
|
c.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
|
|
10、
a.使用while循环输出2-3+4-5+6…+100的和:
|
|
结果:51
b.使用 for 循环和 range 实现输出1-2+3-4+5..+99的和
|
|
结果是:50
c.使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12
|
|
d.使用 while 循环实现输出 1-100 内的所有奇数
|
|
e.使用 while 循环实现输出1-100 内的所有偶数
|
|
11、分别书写数字 5,10,32,7 的二进制表示
|
|
12、简述对象和 类的关系(可用比喻的手法)
可以把对象比作一个人,让人做某件事情,不需要考虑中间的过程,只需要给一个指令,然后这个人就把事情做完了。
类可以认为是一个模板
13、现有如下两个变量,请简述n1 和 n2 是什么关系?
n1 = 123
n2 = 123
变量通常是保存在内存中的,变量不是直接指向的内容,而是先指向存内容123的地址,这个地址就相当于门牌号。
使用id()查看变量的地址,发现地址是相同的,即便是将n1重新复制给n3,内容也是一样的,说明n1 n2存储的内容指向同一个地址。
通过查找资料,发现这不是绝对的,在数字很小的时候,id是一样的,是Python对此进行了缓存。但是在pycharm中都是一样的,应该是pycharm本身处理的。
下面是做的实验测试确定范围(在Python终端中测试):
测试的结果是:缓存的范围是[-5~256]
14、现有如下两个变量,请简述 n1 和 n2 是什么关系?
n1 = 123456
n2= 123456
|
|
现在n1 n2的地址是不一样的,说明n1 n2 是完全不同的
15、现有如下两个变量,请简述n1 和 n2 是什么关系?
n1 = 123456
n2 = n1
通过测试发现n1 n2的地址是一样的,说明n1把自己的地址赋值给了n2,这个地址指向的是同一个内容123456
16、如有一下变量 n1=5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?
|
|
二进制最少是3位
17、布尔值分别有什么?
- True
- False
18、阅读代码,请写出执行结果
a = "alex"
b = a.capitalize() # 首字母大写
print(a)
print(b)
请写出输出结果:
|
|
capitalize()将变量a转换成大写并赋值给b
19、写代码,有如下变量,请按照要求实现每个功能
name = “ aleX”
a. 移除 name 变量对应的值两边的空格,并输出移除后的内容
|
|
b. 判断 name 变量对应的值是否以 “al” 开头,并输出结果
如果直接用startwith判断的时候,返回得是False,name的开头是空格,通过上一步去除空格后
|
|
c. 判断 name 变量对应的值是否以 “X” 结尾,并输出结果
|
|
d. 将 name 变量对应的值中的 “l” 替换为 “p”, 并 输 出 结 果
|
|
e. 将 name 变量对应的值根据 “l” 分割,并输出结果。
|
|
输出结果是:
[‘ a’, ‘eX’]
f. 请问,上一题 e 分割之后得到值是什么类型?
列表list
g. 将 name 变量对应的值变大写,并输出结果
|
|
ALEX
h. 将 name 变量对应的值变小写,并输出结果
|
|
alex
i. 请输出 name 变量对应的值的第 2 个字符?
|
|
Python字符串可以看做list的对象
j. 请输出 name 变量对应的值的前 3 个字符?
|
|
输出的前三个是: 空格 a l
k. 请输出 name 变量对应的值的后 2 个字符?
|
|
还是把字符串转换成列表,直接根据列表的索引值求出
l. 请输出 name 变量对应的值中 “e” 所在索引位置?
|
|
得出的索引值是3
20、字符串是否可迭代?如可以请使用 for 循环每一个元素?
- 可以迭代12for iteration in 'abdefg':print iteration
22、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = [‘alex’, ‘eric’, ‘rain’]
使用join直接把列表拼接成字符串,前面的分号可以添加分隔符号
结果:alexericrain
21、写代码,有如下列表,按照要求实现每一个功能
li=[‘alex’,’eric’,’rain’]
a. 计算列表长度并输出
|
|
b. 列表中追加元素 “seven”,并 输 出 添 加 后 的 列 表
|
|
c. 请在列表的第 1个位置插入元素“Tony”,并 输 出 添 加 后 的 列 表
|
|
忘记怎么用查看下函数的定义,index在前面
d.请修改列表第 2 个位置的元素为 “Kelly”,并 输 出 修 改 后 的 列 表
|
|
e. 请删除列表中的元素“eric”,并 输 出 修 改 后 的 列 表
|
|
首先获取eric的索引值,然后通过索引来删除
f.请删除列表中的第 2 个元素,并输出删除的元素的值和删除元素后的列表
|
|
列表的顺序是从0 开始的
输出结果:
eric
[‘alex’, ‘rain’]
g. 请删除列表中的第 3个元素,并输出删除元素后的列表
|
|
h.请删除列表中的第 2 至 4 个元素,并输出删除元素后的列表
|
|
切片删除,[start : end : step] start end 是索引 的起始位置,step是步长
i.请将列表所有的元素反转,并输出反转后的列表
|
|
输出结果:
[‘rain’, ‘eric’, ‘alex’]
j. 请使用 for、len、range 输出列表的索引
|
|
输出结果:
(0, ‘alex’)
(1, ‘eric’)
(2, ‘rain’)
k.请使用 enumerate 输出列表元素和序号(序号从 100 开始)
|
|
输出结果:
(100, ‘alex’)
(101, ‘eric’)
(102, ‘rain’)
l. 请使用 for 循环输出列表的所有元素
|
|
输出结果:
alex
eric
rain
22、写代码,有如下列表,请按照功能要求实现每一个功能
li=[“hello”, ‘seven’, [“mon”, [“h”,”kelly”],’all’],123,446]
a. 请输出 “Kelly”
Kelly
b. 请使用索引找到 ‘all’ 元素并将其修改为 “ALL”
|
|
结果:
ALL
23、写代码,有如下元组,按照要求实现每一个功能
tu = (‘alex’, ‘eric’, ‘rain’)
a.计算元组长度并输出
|
|
结果:3
b. 获取元组的第 2 个元素,并输出
|
|
c. 获取元组的第 1-2 个元素,并输出
|
|
结果:
(‘alex’, ‘eric’)
d. 请使用 for 输出元组的元素
|
|
结果:
alex
eric
rain
e. 请使用 for、len、range 输出元组的索引
|
|
结果:
(0, ‘alex’)
(1, ‘eric’)
(2, ‘rain’)
f. 请使用 enumrate 输出元祖元素和序号(序号从 10 开始)
|
|
结果:
(10, ‘alex’)
(11, ‘eric’)
(12, ‘rain’)
24、有如下变量,请实现要求的功能
tu=(“alex”,[11, 22, {“k1”:’v1’,”k2”:[“age”,”name”],”k3”:(11,22,33)}, 44])
a. 讲述元祖的特性
元组tuple拥有列表的特性,唯一不同的是不能修改
b. 请问 tu 变量中的第一个元素“alex” 是否可被修改?
不能修改
c. 请问 tu 变量中的”k2”对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
k2是字典dict,可以修改
|
|
j结果:
(‘alex’, [11, 22, {‘k3’: (11, 22, 33), ‘k2’: [‘age’, ‘name’], ‘k1’: ‘v1’, ‘k4’: ‘Seven’}, 44])
d. 请问 tu 变量中的”k3”对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
k3对应的是元组类型tuple,不能修改
25、字典
dic ={‘k1’:”v1”, “k2”:”v2”,”k3”: [11,22,33]}
a. 请循环输出所有的 key
|
|
因为字典是无序的,所以输出的也是无序的
结果:
k3
k2
k1
b. 请循环输出所有的 value
|
|
结果:
[11, 22, 33]
v2
v1
d.请在字典中添加一个键值对,”k4”: “v4”,输出添加后的字典
|
|
结果:
{‘k3’: [11, 22, 33], ‘k2’: ‘v2’, ‘k1’: ‘v1’, ‘k4’: ‘v4’}
e.请在修改字典中“k1” 对应的值为 “alex” 输 出 修 改 后 的 字 典
|
|
结果:
{‘k3’: [11, 22, 33], ‘k2’: ‘v2’, ‘k1’: ‘alex’}
f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典
结果:
{‘k3’: [11, 22, 33, 44], ‘k2’: ‘v2’, ‘k1’: ‘v1’}
g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典
|
|
{‘k3’: [11, 18, 22, 33], ‘k2’: ‘v2’, ‘k1’: ‘v1’}
26、转换
a. 将字符串 s =”alex” 转换成列表
|
|
结果:
b.将字符串 s =”alex” 转换成元祖
|
|
结果:
b.将列表li=[“alex”,”seven”] 转换成元组
|
|
结果:
c.将元祖 tu=(‘Alex’, “seven”) 转换成列表
|
|
结果:
d.将列表 li=[“alex”,”seven”] 转换成字典且字典的 key 按照10步长开始向后递增
|
|
结果:
{10: ‘alex’}
{10: ‘alex’, 11: ‘seven’}
27、转码
n=”老男孩”
a.将字符串转换成 utf-8 编码的字节,并输出,然后将该字节再转换成 utf-8 编码字符串,再输出
|
|
b.将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出
|
|
28、求 1-100 内的所有数的和
|
|
29、元素分类
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个 key 中,将小于66的值保存至第二个 key 的值中。即:{‘k1’:大于 66 的所有值,’k2’:小于 66 的所有值}
|
|
结果:
{‘k2’: [11, 22, 33, 44, 55], ‘k1’: [77, 88, 99, 90]}
30、购物车
功能要求:要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功
goods =[
{“name”: “电脑”, “price”: 1999},
{“name”: “鼠标”, “price”: 10},
{“name”: “游艇”, “price”: 20},
{“name”: “美女”, “price”: 998},
]
|
|