共计30题
1、执行Python 脚本的两种方式
使用python解释器(python aa.py)或在unix系统下赋值成777,执行(./aa.py)
2、简述位、字节的关系
1个byte = 8bit,在ASCII表中,一共有255个字符,一个字符占8位。
3、简述ascii、unicode、utf--‐8、gbk 的关系
最初的计算机是由美国人发明的,制定了一张包含他们能用到的所有字符和计算机能理解的数字的对应关系。随着计算机的发展和普及,各国都制定了自己的编码,那么ASCII也容纳不了且无法形成统一标准,就推出了Unicode(万国码)。utf-8是可变长的编码,是unicode原 本占2个字节的英文被编码成1个字节,汉字是3个字节,生僻的字符占4-6个字节,节省了传输英文编写文档的空间。gbk是中国人自己的字符集,容纳了2万1千多个字符。
4、请写出“李杰”分别用utf--‐8 和gbk 编码所占的位数
utf-8用6个字节表示2个汉字,gbk用4个字节
5、Pyhton 单行注释和多行注释分别用什么?
单行注释用“#”,多行注释用‘‘‘注释内容‘‘‘
6、声明变量注意事项有那些?
(1)不能以数字开头(2)只能是字母、数字或下划线的任意组合,但不能有特殊字符(3)关键字通常不能声明为变量
8、如何查看变量在内存中的地址?
id(变量名)
9、执行Python程序时,自动生成的.pyc文件的作用是什么?
.pyc文件是由.py文件经过编译后生成的字节码文件,其加载速度相对于之前的.py文件有所提高,且实现了源码隐藏,以及一定程度上的反编译。一般是import其他py文件的时候会生成。
10、写代码
a.实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登陆成功,否则登陆失败。
user = input("Username: ").strip() passwd = input("Password: ").strip() if user == "seven" and passwd == "123": print("Welcome to back,",user) else: print("Incorrect username or password!")
b.实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
for i in range(3): user = input("Username: ").strip() passwd = input("Password: ").strip() if user == "seven" and passwd == "123": print("Welcome to back,",user) break else: print("Incorrect username or password!")
c.实现用户输入用户名和密码,当用户名为seven或alex且密码为123时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
for i in range(3): user = input("Username: ").strip() passwd = input("Password: ").strip() if user == "seven" or user == "alex" and passwd == "123": print("Welcome to back,",user) break else: print("Incorrect username or password!")
11、写代码
a.使用while 循环实现输出2--‐3+4--‐5+6...+100的和
b.使用for 循环和range 实现输出1--‐2+3--‐4+5--‐6...+99的和
c.使用while 循环实现输出1,2,3,4,5,7,8,9,11,12
d.使用while 循环实现输出1--‐100内的所有奇数
e.使用while 循环实现输出1--‐100内的所有偶数
12、分别书写数字5,10,32,7 的二进制表示
101 1010 100000 111
13、简述对象和类的关系(可用比喻的手法)
类是抽象的概念,为所有对象定义了抽象的属性与行为,对象是类的一个具体。是一个实实在在的东西。比如人类是所有人的一个统称,具体的你、我、他是其中的对象。
14、现有如下两个变量,请简述n1和n2是什么关系?
n1=123
n2=123
n1和n2指向同一块内存地址,数值是123
15、现有如下两个变量,请简述n1和n2是什么关系?
n1=123456
n2=123456
开辟了2个内存地址存放数据123456,并分别起了个名称为n1和n2.
16、现有如下两个变量,请简述n1和n2是什么关系?
n1=123456
n2=n1
给数据123456起了另外一个别名n2,相当于n1和n2都指向该数据的内存地址
17、如有一下变量n1=5,请使用int 的提供的方法,得到该变量最少可以用多少个二进制位表示?
18、布尔值分别有什么?
布尔值有True和False
19、阅读代码,请写出执行结果
a="alex"
b=a.capitalize()
print(a)
print(b)
请写出输出结果:
print(a) alex print(b) Alex
20、写代码,有如下变量,请按照要求实现每个功能
name=" aleX"
a.移除name 变量对应的值两边的空格,并输入移除有的内容
b.判断name 变量对应的值是否以"al"开头,并输出结果
print(name.startswith("al")) 执行结果 False
c.判断name 变量对应的值是否以"X"结尾,并输出结果
print(name.endswith("X")) 执行结果 True
d.将name 变量对应的值中的“l”替换为“p”,并输出结果
print(name.replace("l","p")) 执行结果 apeX
e.将name 变量对应的值根据“l”分割,并输出结果。
print(name.split("l")) 执行结果 [‘ a‘, ‘eX‘]
f.请问,上一题e分割之后得到值是什么类型?
列表
g.将name 变量对应的值变大写,并输出结果
print(name.upper()) 执行结果 ALEX
h.将name 变量对应的值变小写,并输出结果
print(name.lower()) 执行结果 alex
i.请输出name 变量对应的值的第2 个字符?
print(name[1]) 执行结果 a
j.请输出name 变量对应的值的前3 个字符?
print(name[:3]) 执行结果 al
k.请输出name 变量对应的值的后2 个字符?
print(name[-2:]) 执行结果 eX
l.请输出name 变量对应的值中“e”所在索引位置?
print(name.index("e")) 执行结果 3
21、字符串是否可迭代?如可以请使用for 循环每一个元素?
name = " aleX" for i in name: print(i)
22、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=[‘alex‘,‘eric‘,‘rain‘]
li = ["alex","eric","rain"] for i in li: print("_".join(i)) 执行结果 a_l_e_x e_r_i_c r_a_i_n
22、写代码,有如下列表,按照要求实现每一个功能
li=[‘alex‘,‘eric‘,‘rain‘]
a.计算列表长度并输出
print(len(li)) 执行结果 3
b.列表中追加元素“seven”,并输出添加后的列表
li.append("seven") print(li) 执行结果 [‘alex‘, ‘eric‘, ‘rain‘, ‘seven‘]
c.请在列表的第1个位置插入元素“Tony”,并输出添加后的列表
li.insert(0,"Tony") print(li) 执行结果 [‘Tony‘, ‘alex‘, ‘eric‘, ‘rain‘]
d.请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表
li[1] = "Kelly" print(li) 执行结果 [‘alex‘, ‘Kelly‘, ‘rain‘]
e.请删除列表中的元素“eric”,并输出修改后的列表
li.remove("eric") print(li) 执行结果 [‘alex‘, ‘rain‘]
f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
>>> li.pop(1) ‘eric‘ >>> li [‘alex‘, ‘rain‘]
g.请删除列表中的第3个元素,并输出删除元素后的列表
>>> li = ["alex","eric","rain"] >>> li.pop() ‘rain‘ >>> li [‘alex‘, ‘eric‘]
h.请删除列表中的第2 至4 个元素,并输出删除元素后的列表
>>> li = [‘alex‘, ‘eric‘, ‘rain‘, ‘seven‘] >>> del li[1:] >>> li [‘alex‘]
i.请将列表所有的元素反转,并输出反转后的列表
>>> li = ["alex","eric","rain"] >>> li.reverse() >>> li [‘rain‘, ‘eric‘, ‘alex‘]
j.请使用for、len、range 输出列表的索引
li = ["alex","eric","rain"] for index in range(len(li)): print(index,li[index]) 执行结果 0 alex 1 eric 2 rain
k.请使用enumrate 输出列表元素和序号(序号从100 开始)
li = ["alex","eric","rain"] for index,value in enumerate(li): print(index + 100,value) 执行结果 100 alex 101 eric 102 rain
l.请使用for 循环输出列表的所有元素
li = ["alex","eric","rain"] for i in li: for item in i: print(item) 执行结果 a l e x e r i c r a i n
23、写代码,有如下列表,请按照功能要求实现每一个功能
li=["hello",‘seven‘,["mon",["h","kelly"],‘all‘],123,446]
a.请输出“Kelly”
>>> li = ["hello","seven",["mon",["h","kelly"],"all"],123,446] >>> li[2][1][1] ‘kelly‘
b.请使用索引找到‘all‘元素并将其修改为“ALL”
>>> li[2][2] = "ALL" >>> li [‘hello‘, ‘seven‘, [‘mon‘, [‘h‘, ‘kelly‘], ‘ALL‘], 123, 446]
24、写代码,有如下元组,按照要求实现每一个功能
tu=(‘alex‘,‘eric‘,‘rain‘)
a.计算元组长度并输出
>>> tu = ("alex","eric","rain") >>> len(tu) 3
b.获取元组的第2个元素,并输出
>>> tu[1] ‘eric‘
c.获取元组的第1--‐2个元素,并输出
>>> tu[:2] (‘alex‘, ‘eric‘)
d.请使用for 输出元组的元素
tu = ("alex","eric","rain") for i in tu: print(i) 执行结果 alex eric rain
e.请使用for、len、range 输出元组的索引
tu = ("alex","eric","rain") for index in range(len(tu)): print(index,tu[index]) 执行结果 0 alex 1 eric 2 rain
f.请使用enumrate 输出元祖元素和序号(序号从10 开始)
tu = ("alex","eric","rain") for index,values in enumerate(tu): print(index + 10,values) 执行结果 10 alex 11 eric 12 rain
25、有如下变量,请实现要求的功能
tu=("alex",[11,22,{"k1":‘v1‘,"k2":["age","name"],"k3":(11,22,33)},44])
a.讲述元组的特性
不可变类型,一旦一个对象被定义了,它的值就不能再被修改,如果包含可变的列表,字典等值,那这些值可以改变
b.请问tu 变量中的第一个元素“alex”是否可被修改?
不能被修改
c.请问tu 变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
k2对应的值是列表类型,可以被修改. >>> tu = ("alex",[11,22,{"k1":"v1","k2":["age","name"],"k3":(11,22,33)},44]) >>> tu[1][2]["k2"].append("Seven") >>> tu (‘alex‘, [11, 22, {‘k1‘: ‘v1‘, ‘k2‘: [‘age‘, ‘name‘, ‘Seven‘], ‘k3‘: (11, 22, 33)}, 44])
d.请问tu 变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
k3对应的类型是元组,不能被修改
26、字典
dic={‘k1‘:"v1","k2":"v2","k3":[11,22,33]}
a.请循环输出所有的key
for keys in dic.keys(): print(keys) 执行结果 k1 k2 k3
b.请循环输出所有的value
for values in dic.values(): print(values) 执行结果 v1 v2 [11, 22, 33]
c.请循环输出所有的key 和value
dic = {"k1":"v1","k2":"v2","k3":[11,22,33]} for k,v in dic.items(): print(k,v) 执行结果 k1 v1 k3 [11, 22, 33] k2 v2
d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典
dic.setdefault("k4","v4") print(dic) 执行结果 {‘k2‘: ‘v2‘, ‘k3‘: [11, 22, 33], ‘k1‘: ‘v1‘, ‘k4‘: ‘v4‘}
e.请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
# dic["k1"] = "alex" # print(dic) # 执行结果 # {‘k3‘: [11, 22, 33], ‘k2‘: ‘v2‘, ‘k1‘: ‘alex‘}
f.请在k3 对应的值中追加一个元素44,输出修改后的字典
dic["k3"].append("44") print(dic) 执行结果 {‘k3‘: [11, 22, 33, ‘44‘], ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}
g.请在k3 对应的值的第1个位置插入个元素18,输出修改后的字典
dic["k3"][0] = "18" print(dic) 执行结果 {‘k3‘: [‘18‘, 22, 33], ‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}
27、转换
a.将字符串s="alex"转换成列表
s = "alex" print(list(s)) 执行结果 [‘a‘, ‘l‘, ‘e‘, ‘x‘]
b.将字符串s="alex"转换成元组
s = "alex" print(tuple(s)) 执行结果 (‘a‘, ‘l‘, ‘e‘, ‘x‘)
b.将列表li=["alex","seven"]转换成元组
li = ["alex","seven"] print(tuple(li)) 执行结果 (‘alex‘, ‘seven‘)
c.将元组tu=(‘Alex‘,"seven")转换成列表
tu = ("alex","seven") print(list(tu)) 执行结果 [‘alex‘, ‘seven‘]
d.将列表li=["alex","seven"]转换成字典且字典的key 按照10开始向后递增
>>> li = ["alex","seven"] >>> l2 = [] >>> for i in li: l2.append(li.index(i) + 10) dict(zip(li, l2)) 执行结果 {‘seven‘: 11, ‘alex‘: 10}
27、转码
n="老男孩"
a.将字符串转换成utf--‐8 编码的字节,并输出,然后将该字节再转换成utf--‐8 编码字符串,再输出
print(n.encode(encoding="utf-8")) 执行结果 b‘\xe8\x80\x81\xe7\x94\xb7\xe5\xad\xa9‘ print("\xe8\x80\x81\xe7\x94\xb7\xe5\xad\xa9".encode(encoding="utf-8")) 执行结果 b‘\xc3\xa8\xc2\x80\xc2\x81\xc3\xa7\xc2\x94\xc2\xb7\xc3\xa5\xc2\xad\xc2\xa9‘
a.将字符串转换成gbk 编码的字节,并输出,然后将该字节再转换成gbk 编码字符串,再输出
print(n.encode(encoding="gbk")) 执行结果 b‘\xc0\xcf\xc4\xd0\xba\xa2‘ print("\xc0\xcf\xc4\xd0\xba\xa2".encode(encoding="gbk")) 执行结果 UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xc0‘ in position 0: illegal multibyte sequence
28、求1--‐100 内的所有数的和
a = 0 for i in range(0,100): a += (i+1) print(a) 执行结果 5050
29、元素分类
有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key 中,将小于66的值保存至第二个key 的值中。即:{‘k1‘:大于66 的所有值,‘k2‘:小于66 的所有值}
30、购物车
功能要求:
要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods=[{"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":998},
]