Python全栈考试(一)

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

1) 使用命令行执行Python脚本: python C:\tesst.py

2) 使用各种IDE软件.pycharm wing

2、简述位、字节的关系

位 (bit) 数据存储是以“字节”位单位的,数据传输大多是以“位”为单位的,以为就代表一个0或1,每8位组成一个字节,是最小一级的信息单位。

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

  Ascii码有256位为最原始的版本

  Unicode位万国码

  Utf-8为Unicode压缩版 以尽量少字节表达

  Gbk为汉字编码

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

  Utf-8需要用3个字节表示一个汉字 李杰需要使用48位

  Gbk需要使用两个字节表示一个汉字  李杰需要用32位

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

单行注释:# hello

     多行注释:'''

      hello world

     '''

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

  1)  变量名由字符、数字、下划线组成

  2)  变量名不能以数字开头

  3)  变量名不能是关键字

  4)  常量定义字符全为大写字符

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

  使用id函数查看:Id(变量名)

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

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

10、             写代码

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

name = input('please input name>>:').strip()
password = input('please input password>>:').strip()
if name.__eq__('seven') and password.__eq__(''):
print('login ok')
break
else:
print('login failed')

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

      
 counter = 3
while counter > 0:
counter-=1
name = input('please input name>>:').strip()
password = input('please input password>>:').strip()
if name.__eq__('seven') and password.__eq__(''):
print('login ok')
break
else:
print('login failed')

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

counter = 3

while counter > 0:

    counter-=1

    name = input('please input name>>:').strip()

    pwd = input('please input password>>:').strip()

    if (name.__eq__('seven') or name.__eq__('alex'))and pwd.__eq__(''):

        print('login ok')

    else:

        print('login failed')        

11、写代码

  1. 使用 while 循环实现输出 2 -   3    +    4    -  5    +    6  -.......   +    100         的和
  2.         result = 0
    
    while counter > 1:
    
        if counter % 2 == 0:
    
            result += counter
    
        else:
    
            result -= counter
    
        counter -= 1
    
    print(result)
  1. 使用 for 循环和 range 实现输出           1   -­ 2    +    3  -  4    +    5 -  6-  ...  +    99           的和
result = 0

for x in range(1,100):

    if x%2==0:

        result-=x

    else:

        result+=x

print(result)
  1. 使用 while 循环实现输出       1,2,3,4,5,            7,8,9,                     11,12
 
counter = 0

while counter <12:

    counter+=1

    if counter==6 or counter ==10:

        print('          ',end='')

    else:

        print(counter,end=',')
  1. 使用 while 循环实现输出       1-­‐100          内的所有奇数
counter = 1

while counter < 100:

    print(counter)

    counter+=2
  1. 使用 while 循环实现输出       1-­‐100          内的所有偶数
counter = 2

while counter < 100:

    print(counter)

    counter+=2

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

             5  : 0b0000 0101
       10 : 0b0000 1010
       32 : 0b0010 0000
        7 : 0b0000 0111

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

      类是对象的集合,如同蛋类中包含鸡蛋,鸭蛋,鹅蛋,egon

      蛋{鸡蛋,鸭蛋,鹅蛋,egon};

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

  n1        =    123

  n2        =    123

      n1和n2两个变量的 在内存中指向的是一个地址,他们的id是一样的

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

n1        =    123456

n2        =    123456

     n1和n2数值相等,但是他们的内存id不同

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

n1        =    123456

n2        =    n1

    n1 和 n2 数值相等,内存地址相等,此时变更n1不会影响n2,n1变更数值,其内存地址变更,而n2的内存地址不变

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

   int.bit_length(n1)

18、              布尔值分别有什么?

    True和False

19、              阅读代码,请写出执行结果

a     =       "alex"

b     =       a.capitalize()

print(a)

print(b)

请写出输出结果:alex

              Alex

20、              写代码,有如下变量,请按照要求实现每个功能

name =  "           aleX"

a     移除 name 变量对应的值两边的空格,并输入移除有的内容

  name.strip()

b     判断 name 变量对应的值是否以             "al"       开头,并输出结果

  name.startwith(“al”)

c      判断 name 变量对应的值是否以             "X"        结尾,并输出结果

name.endwith(“X”)

d     将 name 变量对应的值中的            “l”             替换为          “p”,并输出结果

name.replace(‘l’, ’p’)

e     将 name 变量对应的值根据            “l”             分割,并输出结果。

name.strp(‘l’)

f       请问,上一题  e  分割之后得到值是什么类型?

得到的是列表类型的

g     将 name 变量对应的值变大写,并输出结果

print(name.strip().supper())   #ALEX

h     将 name 变量对应的值变小写,并输出结果

  print(name.strip().lower())       #alex

i       请输出 name 变量对应的值的第 2 个字符?

print(name.strip()[1])      #l

j       请输出 name 变量对应的值的前 3 个字符?

print(name.strip()[:3])     #ale

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

print(name[-2:])   #eX

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

  print(name.index(‘e’))           #6

21、字符串是否可迭代?如可以请使用 for 循环每一个元素?

字符串可以迭代

str = ‘hello world’

for item in str:

print(item)

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

    str = li[0]+’_’+ li[1]+’_+ li[2]

22、              写代码,有如下列表,按照要求实现每一个功能

li           =         ['alex',          'eric',     'rain']

  1. 计算列表长度并输出

     print(len(li))

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

print(li.append(‘seven’))

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

print(li.insert(0,’Tony’))

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

li[1]=’Kelly’

print(li)

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

li.remoer(‘eric’)

print(li)

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

print(li.pop(2))

print(li)

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

    print(li.pop(3))

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

    del li[1:3]

    print(li)

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

    print(li.reverse())

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

    for index in range(len(li)):

    print(index)

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

for x,y in enumerate(li,100):

print(x,y)

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

for item in li:

print(item)

23、              写代码,有如下列表,请按照功能要求实现每一个功能

li          =    ["hello",         'seven',           ["mon",          ["h",       "kelly"],         'all'],      123,       446]

  1. 请输出       “Kelly”

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

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

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

24、              写代码,有如下元组,按照要求实现每一个功能

tu           =         ('alex',          'eric',     'rain')

  1. 计算元组长度并输出

print(len(tu))

  1. 获取元组的第            2           个元素,并输出

    print(tu[1])

  1. 获取元组的第            1-­‐2     个元素,并输出

    print(tu[:2])

  1. 请使用 for 输出元组的元素

    for item in tu:

     print(item)

  1. 请使用 for、len、range 输出元组的索引

for index in range(len(tu)):

print(index)

  1. 请使用 enumrate 输出元祖元素和序号(序号从 10 开始)

    for index value in enumerate(tu):

    print(index,value)

25、              有如下变量,请实现要求的功能

tu         =    ("alex",           [11,        22,         {"k1":    'v1',       "k2":      ["age",            "name"],        "k3":             (11,22,33)},            44])

  1. 讲述元祖的特性

元组是不可变类型,主要体现在元组的每个元素id唯一

  1. 请问 tu 变量中的第一个元素          “alex”       是否可被修改?

不可以被修改

  1. 请问 tu 变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素         “Seven”

K2对应的是列表类型,可以被修改,

tu[1][2].get(‘k2’).append(“Seven”)

  1. 请问 tu 变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素         “Seven”

K3对应的是元组类型  不可被修改

26、              字典

dic       =    {'k1':      "v1",      "k2":      "v2",      "k3":      [11,22,33]}

  1. 请循环输出所有的 key

    for key in dic.keys:

    print(key)

   2.请循环输出所有的 value

    for value in dic.values:

     print(value)

    3.请循环输出所有的 key 和 value

    for key,value in dic.items:

    print(key:‘%s  value:%s’   % (key,value))

   4.请在字典中添加一个键值对,"k4":         "v4",输出添加后的字典

     dic[‘k4’]) = ‘k4’)  print((dic)

   5.请在修改字典中        “k1”          对应的值为           “alex”,输出修改后的字典

    dic[‘k1’] = ‘alec’  print(dic)

   6.请在 k3 对应的值中追加一个元素          44,输出修改后的字典

dic[‘k3’].append(44)  print(dic)

   7.请在 k3 对应的值的第             1           个位置插入个元素       18,输出修改后的字典

dic[‘k3’].insert(0,18)  print(dic)

27、转换

  1. 将字符串            s           =    "alex"     转换成列表

l = []

   for char in s:

l.append(char)

print(l)

    2.将字符串            s           =    "alex"     转换成元祖

l = []

    for char in s:

l.append(char)

print(tuple(l)l)

   3.将列表       li          =    ["alex",           "seven"]          转换成元组

tuple(li)

   4.将元祖       tu         =    ('Alex',            "seven")          转换成列表

list(tu)

   5.将列表       li          =    ["alex",           "seven"]          转换成字典且字典的 key 按照10 开始向后递增

dic = dict(enumerate(li,10))

print(dic)

28、  转码

n          =    "老男孩"

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

      sstr=n.encode("UTF-8")
      print(sstr)
      sstr.decode("UTF-8")
      print(sstr)

b.    将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出

      sstr=n.encode("GBK")
      print(sstr)
      sstr.decode("GBK")
      print(sstr)

28、 求 1-­‐100 内的所有数的和

result = 0

for i in range(100):

result +=i

print(result)

29、元素分类

有如下值集合      [11,22,33,44,55,66,77,88,99,90],将所有大于           
66         的值保存至字典的第一个 key 中,将小于         66         的值保存至第二个 key 的值中。

即:    
{'k1':              大于 66 的所有值,    'k2':        小于 66 的所有值}

l = [11,22,33,44,55,66,77,88,99,90]

dic = {’k1’:[],’’k2:[]}

            for item in l:

                   if  item > 66

                            dic[‘k1’].append(item)

                   else:

                            dic[‘k2’].append(item)

         print(dic)

30、              购物车

功能要求:

要求用户输入总资产,例如:2000

显示商品列表,让用户根据序号选择商品,加入购物车

购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

goods           =    [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998}, ]
assets = 2000 cart_l = [] while True: cmd = input('1.Shopping\n2.Settlement\nPlease input
index>>:') if not cmd.isdigit():continue if int(cmd) <= 0 or int(cmd) >2: print('commend not exist') continue if cmd == '': for index, goods_d in enumerate(goods_l, 1): name, price = goods_d.items() print('%d.goods name:%s goods price:%s' % (index, name[1], price[1])) cmd = input('please select your goods by index>>:') if not cmd.isdigit():continue index_s = int(cmd) if index_s <= 0 or index_s > len(goods_l):continue while True: num = input('please select number of goods>>:') if num.isdigit(): break cart_l.append((goods_l[index_s-1], int(num))) print(cart_l) else: totals = 0 for goods_msg in cart_l: totals += goods_msg[0]['price'] * (goods_msg[1]) if totals <= assets: print(type(totals)) print('you settlement ok!!,and balance is %d $' % (assets - totals)) else: print('balance is not enough!!!1') break
上一篇:Java版将EXCEL表数据导入到数据库中


下一篇:JavaScript之职责链模式