Python试题(1)

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

源文件方式,交互方式

2,  简述位、字节的关系

1字节=8位

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

         ASCII,gbk,Unicode,utf-8,向下兼容

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

         李杰:utf-8 6个字节=48bit

         李杰:GBK 4个字节=32bit

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

         单行注释用# 多行注释用’’’ ‘’’

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

         开头为字母或下划线,不能使用关键字

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

         Id(变量名)

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

         .pyc文件是由.py文件经过编译后生成的字节码文件,加载速度有所提高,可以实现

源码隐藏。

10、写代码

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

#author:徐征
usre="seven"
pwd="123"

username = input("用户名:")
password = input("密码:")
if username == usre and password == pwd:
    print("登陆成功!")
else:
    print("登陆失败!")

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

#author=徐征
usre="seven"
pwd="123"
i = 0
for i in range(10):
    if i < 3:
        username = input("用户名:")
        password = input("密码:")
        if username == usre and password == pwd:
            print("登陆成功!")
        else:
            print("登陆失败!")
    else:
        print("不知道就走开!")
        break
   
i +=1

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

        #author=徐征
usre="seven"
usre1="alex"
pwd="123"
i = 0
for i in range(10):
    if i < 3:
        username = input("用户名:")
        password = input("密码:")
        if username == usre or username == usre1 and password == pwd:
            print("登陆成功!")
            exit()
        else:
            print("登陆失败!")
    else:
        print("不知道就走开!")
        break
   
i +=1

11、写代码

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

  a = 2
b = 0
while a <= 100:
    if a%2 == 0:
        b = b + a
    else:
        b = b - a
    a +=1
print(b)

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

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

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

#author:徐征
while True:
    for i in range(1,13):
        if i != 6 and i != 10:
            print(i)
    break

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

while True:
    for i in range(1,100):
        if i % 2 == 1:
            print(i)
    break

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

while True:
    for i in range(1,101):
        if i % 2 == 0:
            print(i)
    break

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

         5       =       101

         10     =       1010

         32     =       100000

         7       =       111

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

         我买了一袋水果,里面有苹果,香蕉

         水果就是类,苹果香蕉就是对象

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

    n1  =  123

n2  =  123

n1 与n2 赋的值是相同的,id地址相同

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

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

    n1  =  123456

n2  =  123456

n1 与n2 赋的值是相同的,ID地址不同

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

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

    n1  =  123456

n2  =  n1

给n1赋值之后给n2赋同一个值,之后改变n1的值,n2不变

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

 print(int(n1).bit_length())

18、布尔值分别有什么?

        布尔值 包括true和false两个值。在二进制中的0、1。在很多情况下,0被认为是 False,所有的非0 值均被认为是 True

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

    

    a  =  "alex"

    b  =  a.capitalize()

    print(a)

    print(b)

请写出输出结果:

          alex

 AlEX 

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

    

    name  =  "  aleX"

  1. 移除 name 变量对应的值两边的空格,并输入移除有的内容     print(name.strip())
  2. 判断 name 变量对应的值是否以  "X"  结尾,并输出结果  print(name[0:2])
  3. 将 name 变量对应的值中的  “l”  替换为  “p”,并输出结果    print(name[-1])
  4. 将 name 变量对应的值根据  “l”  分割,并输出结果。     name = name[:2]+"p"+name[-2:]     print(name)
  5. 请问,上一题  e  分割之后得到值是什么类型?   字符串
  6. 判断 name 变量对应的值是否以  "al"  开头,并输出结果
name1 = name[:2]
name2 = name[-2:]
print(name1,name2)
  1. 将 name 变量对应的值变大写,并输出结果

print(name.upper())

  1. 将 name 变量对应的值变小写,并输出结果
print(name.lower())

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

       Print(name[2])

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

        Print(name[0:4])

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

  Print(name[-3:-1])

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

       Print(name.index(“e”))

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

name =" aleX"
for i in name:
    print(i)

22、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li  =  ['alex',  'eric',  'rain']  
b = li[0] + "_" + li[1] + "_" + li[2]
print(b)

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

    

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

  1. 计算列表长度并输出 print(len(li))
  2. 列表中追加元素  “seven”,并输出添加后的列表
li.append("seven")
print(li)

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

   li.insert(0,"seven")
print(li)

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

  li[1] = "Tony"
print(li)

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

  li.remove('eric')
print(li)

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

  print(li.pop(1))

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

  li.pop(2)
print(li)

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

  for i in range(3):
        li.pop(1)
    print(li)

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

  b = list(reversed(li))
print(b)

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

  for i in range(len(li)):
         print(i)

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

  for i,name in enumerate(li,100):
         print(i,name)

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

    for i in li:
     print(i)

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

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

    a.  请输出  “Kelly”

 name = str(li[2][1][1])
print(name.capitalize())

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

    name = str(li[2][2])
print(name.upper())

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

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

  1. 计算元组长度并输出

print(len(tu))

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

print(tu[1])

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

print(tu[:2])

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

  for i in tu:

        print(i)

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

for i in range(len(tu)):

    print(i)

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

for i,name in enumerate(tu,10):

    print(i,name)

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

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

  1. 讲述元祖的特性

不可修改

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

不可以修改

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

       是列表类型,可以被修改

  b = tu[1][2]["k2"] = [].append("Seven")

  print(tu)

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

b = list(tu[1][2]["k3"])

b.append("seven")

tu[1][2]["k3"] = tuple(b)

print(tu)

26、字典

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

  1. 请循环输出所有的 key

For I in dic.keys()

Print(i)

    b.  请循环输出所有的 value

 For I in dic.values()

Print(i)

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

For I in dic.keys()

Print(I,dic[i])

  1. 请在字典中添加一个键值对,"k4":  "v4",输出添加后的字典
dic.setdefault("k4","v4")
print(dic)
{'k2': 'v2', 'k3': [11, 22, 33], 'k1': 'v1', 'k4': 'v4'}
2.请在修改字典中  “k1”  对应的值为  “alex”,输出修改后的字
    dic["k1"] = "alex"
    print(dic)

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

  1. 请在 k3 对应的值中追加一个元素  44,输出修改后的字典
      i = list(dic["k3"])
i.append(44)
dic["k3"] = i
print(dic)
{'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33, 44]}
2.请在 k3 对应的值的第  1  个位置插入个元素  18,输出修改后的字典
i = list(dic["k3"])
i.insert(0,18)
dic["k3"] = i
print(dic)

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

27、转换

    

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

 print(list(s))

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

 print(tuple(s))

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

 print(tuple(list(li)))

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

print(list(tu))

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

li = ["alex", "seven"]

dict = {}

for i,name in enumerate(li,10):

    dict[i] = name

print(dict)

27、转码

    n  =  "老男孩"

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

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

print(n.encode(encoding="utf-8").decode(encoding="utf-8"))

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

     print(n.encode(encoding="gbk"))

print(n.encode(encoding="gbk").decode(encoding="gbk"))

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

a = 0
for i in range(0,101):
    a = a + i
print(a)

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]
b = []
c = []
for i in a:
    if i >66:
        b.append(i)
    else:
        c.append(i)
x = {"k1":c,"k2":b}
print(x)

{'k1': [11, 22, 33, 44, 55, 66], 'k2': [77, 88, 99]}

30、购物车

    功能要求:

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

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

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

    goods  =  [

        {"name":  "电脑",  "price":  1999},

        {"name":  "鼠标",  "price":  10},

        {"name":  "游艇",  "price":  20},

        {"name":  "美女",  "price":  998},

]

#author:徐征
money = input('老铁带了多少钱来潇洒:')
money = int(money)
product_list = ['电脑','鼠标','游艇','美女']#货物列表
prices_list = [1999,10,20,998]#价格列表
if money < min(prices_list):#把输入的钱和货物最小的价格作比较
   
print("店里的宝贝你买不起,回家拿钱去吧!")
    exit()#钱没带够就走吧
else:
    print("欢迎光临小黑店! 本店商品都有:")
shopping_cart = []#做一个空列表为购物车
shopping_prices = []
while True:
    for i in range (0,len(product_list)):#用循环输出列表
       
print(str(i+1),product_list[i],prices_list[i])#打印货物和价格
   
user_select = input('客官你想来点什么>>:')
    if (user_select != "q" and user_select != "Q"):#判断用户的输入
       
try:
            user_select = int(user_select)-1
            us = product_list[user_select]
            shopping_prices.append(prices_list[user_select])#把用户选择的货物价格放入购物车
        
except:
            if(product_list.count(user_select) > 0):
                shopping_prices.append(prices_list[product_list.index(user_select)])
                us = user_select
            else:#如果输入的货物不在列表上,就重新循环输入
               
print("别搞笑好吗")
                continue
        if
(len(shopping_cart)==0):
            shopping_cart.append(us)
        else:
            if(sum(shopping_prices)> money):#判断购物车的货物总值是否大于带的钱
               
print("老铁你买不起,你还差" , (sum(shopping_prices)-money) , "美元")
                shopping_prices.pop(-1)#把最后加入购物车的货物删去
           
else:
                shopping_cart.append(us)#将货物加入购物车
       
print("余额:",money-sum(shopping_prices),"美元")
    else:
        break
print("---------老铁你买了--------")#显示购物车的全部货物
print("id" + " " + "商品" + " " + "单价")

for i in range(0, len(shopping_cart)):
    print(str(i+1) + " " + str(shopping_cart[i]) + " " + str(shopping_prices[i]))#同上打印货物与价格列表
print("加一块总共:",sum(shopping_prices),"美元")
print("老铁你还有:",money-sum(shopping_prices),"美元")
print("再来哟,老铁!")
print("--------end--------")
原文地址:https://www.cnblogs.com/xuzheng940806/p/6653179.html