首页 > 代码库 > Python全栈考试(一)

Python全栈考试(一)

1、执行 Python 脚本的两种方式

你也可以用PyCharm

 

2、简述位、字节的关系

数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B)

 

3、简述 ascii、unicode、utf--‐8、gbk 的关系

ASCII码最多只能表示 255 个符号

unicode最多只能表示65536个字符

utf--‐8是对Unicode编码的压缩和优化:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

gbk是汉字内码扩展规范

 

4、请写出  “李杰”  分别用 utf--8 和 gbk 编码所占的位数 

用utf-8占48位

用gbk占32位 

 

 

5、Pyhton 单行注释和多行注释分别用什么?

python中单行注释采用 # 开头

python 中多行注释使用三个单引号(‘‘‘)或三个双引号(""")

 

6、声明变量注意事项有那些?

(1.) 变量名只能是 字母、数字或下划线的任意组合

(2.)变量名的第一个字符不能是数字

(3.)以下关键字不能声明为变量名

[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]

 

8、如何查看变量在内存中的地址?

   id(变量名)

 

9、执行 Python 程序时,自动生成的  .pyc  文件的作用是什么? 

运行Python程序,PyCodeObject编译保存文件,.pyc文件是PyCodeObject永久性保存文件

 

10、

写代码
    a.实现用户输入用户名和密码,当用户名为  seven  且  密码为  123  时,显示登陆成功,否则登陆失败!

name = input("name:")#输入账号
passwd = input("passwd:")#输入密码

if name == "seven" and passwd == "123":#判断用户名和密码是否相等
print("登陆成功")

else:
print("用户名或密码不正确,请重新输入!")


教训: python中break,continue只能用于for,while这样的循环中,不然会报错。

    b.实现用户输入用户名和密码,当用户名为  seven  且  密码为  123  时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

for i in range(3):
name = input("name:")#输入账号
passwd = input("passwd:")#输入密码

if name == "seven" and passwd == "123":#判断用户名和密码是否相等
print("登陆成功")

else:
print("用户名或密码不正确,请重新输入!")

 

 


    c.实现用户输入用户名和密码,当用户名为  seven  或  alex  且  密码为  123  时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

for i in range(3):
name = input("name:")#输入账号
passwd = input("passwd:")#输入密码

if name == "seven" or name == "alex" and passwd == "123":#判断用户名和密码是否相等
print("登陆成功")

else:
print("用户名或密码不正确,请重新输入!")

11、写代码
    a.  使用 while 循环实现输出 2  -‐  3  +  4  ‐  5  +  6  ...  +  100  的和

i = 2;
j=0;
while i <= 100:
if(i%2 == 0):
j = j + i;
else:
j = j - i;
i+=1;
print(j);

    b.  使用 for 循环和 range 实现输出  1  ‐  2  +  3 ‐  4  +  5  -‐  6  ...  +  99  的和

b = 0
for i in range(1,100):
if i%2 == 0:
b = b - i
else:
b = b +i
i +=1
print(b)

 


    c.  使用 while 循环实现输出  1,2,3,4,5,   7,8,9,    11,12

i=0;
while i<12:
i+=1;
if(i == 6 or i == 10 ):
print("\t",end=" ");
continue;
print(i,",",end="");


    d.  使用 while 循环实现输出  1‐100  内的所有奇数

i=1
while i <=100:
if(i%2 !=0 ):
print(i)
i+=1

e.  使用 while 循环实现输出  1‐100  内的所有偶数

i=1

while i <=100:
if(i%2 ==0 ):
print(i)
i+=1


12、分别书写数字 5,10,32,7 的二进制表示

5:0000 0101   10:0000 1010   32:0010 0000  7:0000 0111


13、简述对象和  类的关系(可用比喻的手法)

类就是文件夹,对象就是文件夹的文件  类有列表,元组,字典等 里面的元素就是对象

 

14、现有如下两个变量,请简述 n1 和 n2 是什么关系?

n1 = 123

n2 = 123

内存地址一样

python内部的优化: -5157之间的赋值变量都是相同的地址,超过这个限制内存地址不同。

15、现有如下两个变量,请简述 n1 和 n2 是什么关系?

n1 = 123456

n2 = 123456

 

内存地址不一样

 

16、现有如下两个变量,请简述 n1 和 n2 是什么关系?

n1 = 123456

n2 = n1

内存地址一样

 

17、如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?

print(int(5).bit_length()); #3个

 

18、布尔值分别有什么?

      真或假
  1 或 0

 

19、阅读代码,请写出执行结果
    
    a  =  "alex"
    b  =  a.capitalize()
    print(a)
    print(b)
    请写出输出结果: alex  Alex

20、写代码,有如下变量,请按照要求实现每个功能
    
    name  =  "  aleX"
a.  移除 name 变量对应的值两边的空格,并输入移除有的内容


name.strip()


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[0:3])       #al

k.  请输出 name 变量对应的值的后 2 个字符?

print(name[-2:])       #eX

l.  请输出 name 变量对应的值中  “e”  所在索引位置?

print(name.find("e"))    #3



21、字符串是否可迭代?如可以请使用 for 循环每一个元素?
name = "zhangsunan"
for i in name:
    print(i)

22、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = [‘alex‘, ‘eric‘, ‘rain‘] 

li2= li[0]+"_"+li[1]+"_"+li[2]


22、写代码,有如下列表,按照要求实现每一个功能
    
    li  =  [‘alex‘,  ‘eric‘,  ‘rain‘]  
    a.  计算列表长度并输出

print(len(li))  #3


    b.  列表中追加元素  “seven” ,并输出添加后的列表

li.append("seven")
#[‘alex‘, ‘eric‘, ‘rain‘, ‘seven‘]

 

c.  请在列表的第  1  个位置插入元素  “Tony” ,并输出添加后的列表

li.insert(0,"Tony")
#[‘Tony‘, ‘alex‘, ‘eric‘, ‘rain‘]


    d.  请修改列表第  2  个位置的元素为  “Kelly” ,并输出修改后的列表


li[1]="Kelly"
#[‘alex‘, ‘Kelly‘, ‘rain‘]


    e.  请删除列表中的元素  “eric” ,并输出修改后的列表

li = [‘alex‘, ‘eric‘, ‘rain‘]
li.remove(‘eric‘)
print(li)
#[‘alex‘, ‘rain‘]


    f.  请删除列表中的第  2  个元素,并输出删除的元素的值和删除元素后的列表

print(li.pop(1))
#eric
#[‘alex‘, ‘rain‘]


    g.  请删除列表中的第  3  个元素,并输出删除元素后的列表

li.pop(2)
#[‘alex‘, ‘eric‘]


    h.  请删除列表中的第  2 至 4 个元素,并输出删除元素后的列表

del li[1:3]
#[‘alex‘, ‘nimeide‘]


    i.  请将列表所有的元素反转,并输出反转后的列表

li.reverse()
#[‘nimeide‘, ‘rain‘, ‘eric‘, ‘alex‘]


    j.  请使用 for、len、range 输出列表的索引

for i in range(len(li)):
    print(i,li[i]);
#0 alex
#1 eric
#2 rain
#3 nimeide


    k.  请使用 enumrate 输出列表元素和序号(序号从 100 开始)

for i, j in enumerate(li):
    print(i+100, j)

#100 alex
#101 eric
#102 rain
#103 nimeide


    l.  请使用 for 循环输出列表的所有元素

for i in  range(len(li)):
    print(li[i]);


23、写代码,有如下列表,请按照功能要求实现每一个功能
    li  =  ["hello",  ‘seven‘,  ["mon",  ["h",  "kelly"],  ‘all‘],  123,  446]
    a.  请输出  “Kelly”

print(li[2][1][1])


    b.  请使用索引找到  ‘all‘  元素并将其修改为  “ALL”

print(li[2][2].upper())


24、写代码,有如下元组,按照要求实现每一个功能tu = (‘alex‘, ‘eric‘, ‘rain‘)

a. 计算元组长度并输出

print(len(tu))     #3

b. 获取元组的第 2 个元素,并输出
print(tu[1])
c. 获取元组的第 1-2 个元素,并输出
print(tu[0:2])
d. 请使用 for 输出元组的元素
for i in range(len(tu)):
    print(tu[i])
e. 请使用 for、len、range 输出元组的索引
for i in range(len(tu)):
    print(i,tu[i])
f. 请使用 enumrate 输出元祖元素和序号(序号从 10 开始)
for i,j in enumerate(tu):
    print(i+10,j)


25、有如下变量,请实现要求的功能
 tu = ("alex", [11, 22, {"k1": ‘v1‘, "k2": ["age", "name"], "k3": (11,22,33)}, 44])
a. 讲述元祖的特性
不可修改,所以又叫不可变列表
 b. 请问 tu 变量中的第一个元素 “alex” 是否可被修改?
不可以修改
 c. 请问 tu 变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
可以修改,是列表
tu[1][2]["k1"] = "seven"
d. 请问 tu 变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
tu[1][2]["k3"]=list(tu[1][2]["k3"])
tu[1][2]["k3"].append("Seven")
tu[1][2]["k3"]=tuple(tu[1][2]["k3"])print(tu)

26、字典 dic = {‘k1‘: "v1", "k2": "v2", "k3": [11,22,33]}
a. 请循环输出所有的 key 
for i in dic.keys():
    print(i)
b. 请循环输出所有的 value
for i in dic.values():
    print(i)
c. 请循环输出所有的 key 和 value
for i,j in dic.items():
    print(i,j)
d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
dic["k4"] = "v4"
#{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: [11, 22, 33], ‘k4‘: ‘v4‘}
e. 请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典
dic["k1"] = "alex"
#{‘k1‘: ‘alex‘, ‘k3‘: [11, 22, 33], ‘k2‘: ‘v2‘}
f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典
dic["k3"].append(44)
#{‘k1‘: ‘v1‘, ‘k3‘: [11, 22, 33, 44], ‘k2‘: ‘v2‘}
g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典
dic["k3"].insert(0,18)
#{‘k3‘: [‘18‘, 11, 22, 33], ‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘}
27、转换 
a. 将字符串 s = "alex" 转换成列表
print(list(s))
b. 将字符串 s = "alex" 转换成元祖
print(tuple(s))
c. 将列表 li = ["alex", "seven"] 转换成元组
print(tuple(li))
d.将元祖 tu = (‘Alex‘, "seven") 转换成列表
print(list(tu))
e.将列表 li = ["alex", "seven"] 转换成字典且字典的 key 按照 10 开始向后递增
li2 = [10,11]
print(dict(zip(li2,li)))

28、转码

n = "老男孩"

a. 将字符串转换成 utf-8 编码的字节,并输出,然后将该字节再转换成 utf-8 编码字符串,再输出

sstr=n.encode("UTF-8")
sstr.decode("UTF-8")
print(sstr)
b. 将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出
sstr=n.encode("GBK")
print(sstr.decode("GBK"))






 

 

Python全栈考试(一)