Python_fullstack_test1

时间:2022-01-02 07:28:57

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

  使用交互式的带提示符的解释器或使用源文件

2、简述位、字节的关系

  位是计算机中最小计量单位,用bit表示
  字节是计算机中最小存储单位,用Byte表示
  1字节=8位,即1Byte=8bit
3、简述ASCII、unicode、utf-8、GBK的关系
  ASCII---->GBK---->unicode---->utf-8
4、请写出“李杰”分别用utf-8和GBK编码所占的位数
  utf-8中占6位
  GBK中占4位
5、python单行注释和多行注释分别用什么?
  单行注释:#
  多行注释三引号:""" """或''' '''
6、声明变量注意事项有哪些?
  不能有空格或制表符
  数字不能开头
  规定的关键字不能用来声明为变量名
  变量只能是字母数字下滑线的任意组合
7、如何查看变量在内存中的地址?
  id(#变量名)
8、执行python程序时,自动生成的.pyc文件的作用是什么?
  .pyc是二进制文件是让计算机处理程序用的
9、写代码
  a.实现用户输入用户名和密码,当用户名为  seven  且  密码为  123  时,显示登陆成功,否则登陆失败!

user_name = input("input your username: ")
password = int(input("input your password: "))
if user_name == "seven" and password == 123:
print ("登陆成功")
else:
print ("登录失败")

  

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

count = 1
while count <= 3:
user_name = input("input your username: ")
password = int(input("input your password: "))
if user_name == "seven" and password == 123:
print ("登陆成功")
break
else:
print ("登录失败")
count += 1
continue
print("hello boy!")

  

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

count = 1
while count <= 3:
user_name = input("input your username: ")
password = int(input("input your password: "))
if user_name == "seven"or"alex" and password == 123:
print ("登陆成功")
break
else:
print ("登录失败")
count += 1
continue
print("hello boy!")  

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

count = 1
a=0
b=0
while count < 100:
count += 1
if count%2 == 0:
oushu = count
sumoushu=a+count
a=sumoushu
else:
jushu = count
sumjishu=b+count
b=sumjishu
sum=a-b
print(sum)

  

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

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

  

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

i=0
b=0
while i<12:
i+=1
if i ==6 :
continue
if i ==10:
continue
print(i)

  

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

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

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

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

  

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

  5:00000101

  10:00001010

  32:00100000

  7:00000111

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

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

  id(n1)=id(n2),数值指向同一个内存地址

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

  n2  =  123456

  id(n1)!=id(n2),数值指向同一个内存地址

  #默认只缓存1~255,这个范围内的相同的数字对应的变量id相等

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

   id(n1)=id(n2)!=id(123456)如果n1换一个新的值,n2还是123456,而且n2的id值保持不变

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

18、布尔值分别有什么?

  True,False

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

    alex
    Alex

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

  name  =  " aleX"

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

    print(name.strip())

    aleX

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  分割之后得到值是什么类型?

    print(type(name.split("l")))

     <class "list"> 
    g.  将 name 变量对应的值变大写,并输出结果

    print(name.upper())

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

    print(name.lower())

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

    print(name[2])

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

    print(name[:3])

     al  

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

    print(name[3:])

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

    print(name.index("e"))

    3

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

    能

    name = "alex"

    for i in "alex":

      print (i)

    

    a

    l

    e

    x

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

    print("_".join(li))

    alex_eric_rain

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(1,"Tony")

    ["alex","Tony","eric","rain","seven"]

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

     li[2]="Kelly"

    ["alex","Tony","Kelly","rain","seven"]

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

    li.remove("eric")

    ["alex","Tony","rain","seven"]    

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

    print(li.pop(2))

    rain

    print(li)

    ["alex","eric"]

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

    del li [2]

    print (li)

    ["alex","eric"]

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

    li=["alex","Tony","eric","rain","seven"]

    del li[2:4]

    print (li)

    ["alex","Tony","seven"]    

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

    print(li.reverse())

    ["rain","eric","alex"]

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

    for i in range(len(li))

    0

    1

    2

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

    for i,number in enumerate(li,100)

      print(i,number)

    100 alex

    101 eric

    102 rain

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

    for i in li:

      print(i)

    alex

    eric

    rain

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

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

  a.  请输出  “Kelly”

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

    Kelly

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

    li[2][2]="ALL"

    print(li)

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

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

  a.  计算元组长度并输出

    print(len(tu))

    3

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

    print(tu[1])

    eric

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

    print(tu[0:2])

    ("alex","eric")

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

    for i in tu:

      print(i)

    alex

    eric

    rain

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

    for i in range(len(tu)):

      print(i)

    0

    1

    2

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

    for i,number in enumerate(tu,10)

      print(i)

    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”  是否可被修改?

    可以被修改,但不建议修改

    li=list(tu)
    li[0]="aaa"
    tu=tuple(li)
    print(tu)

    ('aaa', [11, 22, {'k2': ['age', 'name'], 'k1': 'v1', 'k3': (11, 22, 33)}, 44])

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

    print(type(tu[1][2]["k2"]))

    <class 'list'>  

    li=list(tu)

    li[1][2]["k2"].append("seven")
    print(li)
    ['alex', [11, 22, {'k3': (11, 22, 33), 'k2': ['age', 'name', 'seven'], 'k1': 'v1'}, 44]]

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

    li=list(tu)     

    li[1][2]["k2"].append("seven")

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

26、字典

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

  a.  请循环输出所有的 key

    print(dic.keys())

    dict_keys(['k1', 'k3', 'k2'])

  b.  请循环输出所有的 value

      print(dic.values())

    dict_keys(['v1', 'v2', [11,22,33]])

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

    for key in dic:

      print(key,dic[key])

    k1 v1

    k2 v2

    k3 [11, 22, 33]

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

    dic["k4"]="v4"

      print(dic)

    {'k4': 'v4', 'k2': 'v2', 'k3': [11, 22, 33], 'k1': 'v1'}

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

    dic["k1"]="alex"

      print(dic)

    {'k3': [11, 22, 33], 'k1': 'alex', 'k2': 'v2'}

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

      dic["k3"].append(44)

      print(dic)

    {'k3': [11, 22, 33, 44], 'k2': 'v2', 'k1': 'v1'}

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

    dic["k3"].insert(0,18)

      print(dic)

    {'k1': 'v1', 'k2': 'v2', 'k3': [18, 11, 22, 33]}

27、转换

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

    list(s)

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

    tuple(s)

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

    tuple(li)

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

    list(tu)

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

      li = ["alex", "seven"]

    tu = [10,11]

    print(dict(zip(li,tu)))

    {'alex': 10, 'seven': 11}

27、转码

  n  =  "老男孩"

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

    print(n.encode("utf-8"))

    m=n.encode("utf-8")

    print(m.decode("utf-8")) 

    b'\xe8\x80\x81\xe7\x94\xb7\xe5\xad\xa9'
  老男孩

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

    rint(n.encode("gbk"))

    m=n.encode("gbk")

    print(m.decode("gbk"))

    b'\xc0\xcf\xc4\xd0\xba\xa2'

    老男孩

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

    sum=0

    for i in range(1,101):

      sum=sum+i

    print(sum)

    5050

29、元素分类

有如下值集合  {11,22,33,44,55,66,77,88,99,90},将所有大于  66  的值保存至字典的第一个 key 中,将小于  66  的值保存至第二个 key 的值中。
    即:  {'k1':  大于 66 的所有值,  'k2':  小于 66 的所有值}

    a={11,22,33,44,55,66,77,88,99,90}

    b={"k1":[],"k2":[]}

    for i in a:
      if i > 66:
      b["k1"].append(i)
    elif i< 66:
      b["k2"].append(i)
    print(b)
    {'k2': [33, 11, 44, 22, 55], 'k1': [99, 77, 88, 90]}

30、购物车

功能要求:

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

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

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

goods  =  [
        {"name":  "电脑",  "price":  1999},

    {"name":  "鼠标",  "price":  10},
        {"name":  "游艇",  "price":  20},
        {"name":  "美女",  "price":  998},

    ]