zoukankan      html  css  js  c++  java
  • Python全栈考试(一)

    Python全栈考试(一)

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

        答:

          1)python x.py

          2)../x.py 

    2、简述位、字节的关系 

         答:

           1)位:二进制位(bit)是计算机存储信息的基本单位,代表1个二进制数位,其值为0或1.

           2)字节:8个连续的二进制位为一个字节,可以存放1个西文字符的编码.

           3)字:2个字节为一个字.

    3、简述 asciiunicodeutf-8gbk 的关系 

       答:

     1) ASCII码使用一个字节编码,所以它的范围基本是只有英文字母、数字和一些特殊    符号 ,只有256个字符。

    2) Unicode能够表示全世界所有的字节

    3)GBK是只用来编码汉字的,GBK全称《汉字内码扩展规范》,使用双字节编码。

    4)UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。英语占1个字节,汉语占3个字节.

     

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

      答:

          1)UTF - 8 “李杰” 占6个字节

           2)gbk “李杰” 占4个字节

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

       答:

           1)单行注释 #注释一行

            2)多行注释 ’’’注释多行’’’

    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、如何查看变量在内存中的地址

      答:

       1)id(变量名)

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

     1).pyc文件是由.py文件经过编译后生成的字节码文件,其加载速度相对于之前的.py文件有所提高,而且还可以实现源码隐藏,以及一定程度上的反编译。比如,Python3.3编译生成的.pyc文件,Python3.4就别想着去运行

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

     1 import getpass
     2 username = input("用户名:")              #getpass模块会报错
     3 
     4 password = getpass.getpass("密码:")
     5 
     6 print(username,password)
     7 
     8 if username == "seven" and password == "123":
     9 
    10     print("欢迎",username,"!")
    11 
    12 else:
    13     print("错误的用户名或密码!")

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

     1 import getpass #getpass模块会报错
     2 username = ("seven") #设定一个用户名
     3 password = 123 #设定一个密码
     4 cance = 0 #设置一个计数
     5 while cance < 3: #循环大于3停止
     6     username = input("用户名:")        #提示用户输入
     7     cance+=1 #循环计数
     8     password = getpass.getpass("密码:")  #提示用户输入密码
     9     print(username,password)
    10 
    11     if username == "seven" and password == "123": #判断用户名和密码是否相等
    12 
    13         print("欢迎",username,"!") #欢迎用户
    14         break
    15 
    16     else:
    17         print("错误的用户名或密码!")

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

     1 import getpass #getpass模块会报错
     2 cance = 0
     3 while cance < 3: #循环3次
     4     username = input("用户名:")        #输入用户名
     5     cance+=1 #循环计数
     6     password = getpass.getpass("密码:") #输入密码
     7 
     8     print(username,password) #打印用户输入
     9 
    10     if username == "seven" or username== "alex": #判断用户名是否相等
    11         if password == "123": #判断密码是否相等
    12 
    13             print("欢迎",username,"!") #登录成功欢迎他
    14             break
    15 
    16     else:
    17         print("错误的用户名或密码!") #提示用户是否正确

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

     1 i,b = 2,0
     2 while i <= 100:#i取2-100
     3     if i%2 == 0:#判断是偶数
     4         b = b + i #结果加当前的i 0+2
     5         print(b)
     6 
     7     else:#奇数
     8         b = b - i #结果减当前i
     9     i += 1 #判断完自增一
    10 print(b) #结果为51


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

    1 a = 0
    2 for i in range(1,100):
    3     if i%2 == 0: #判断偶数
    4 
    5         a = a - i #a - 当前的i
    6     else:
    7         a = a + i #a + 当前的i
    8     i += 1 #判断i+1
    9 print(a) #结果为50


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

    1 a = 1
    2 while a < 13:
    3     if a == 6 or a == 10:
    4         pass #相等就跳过
    5     else:
    6         print(a)
    7     a += 1


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

    1 a = 1
    2 while a <100:
    3     if a%2 == 0: #判断偶数
    4         pass
    5     else:
    6         print(a)
    7     a += 1 #打印奇数

    12、分别书写数字 510327 的二进制表示 

       答:

           1)5   == 00000101 

           2)10 == 00010010

           3)32 == 00100000

           4)7   == 00000111

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

      答:

       1)类就是手掌,对象就是手指纹.类(手)有几个手指,分别是列表,元组,字典等里面的元素就是对象(指纹)

     

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

    n1 = 123 

    n2 = 123 

    答:n1和n2是2个不同的标签相同的ID号,数值指向同一个内存地址.

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

    n1 = 123456 

    n2 = 123456 

    答:n1和n2是2个不同的标签不同的ID号,数值指向同一个内存地址

     

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

    n1 = 123456 

    n2 = n1

    答:n1是123456的标签,n2是贴在n1上的标签.两者代表的都是123456

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

     1 n1 = 5

    print(n1.bit_length()) 

    18、布尔值分别有什么? 

     答:True 真  1 and False 假  0

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

    a = "alex"
    b = a.capitalize()

    print(a)
    print(b) 

    请写出输出结果: a = alex b = Alex

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

    name = " aleX"

     

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

     1 name = " aleX"

    2 print(name.strip()) 

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

     1 name = " aleX"

    2 print(name.startswith("al")) 

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

     1 name = " aleX"

    2 print(name.endswith("X")) 

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

    1 name = " aleX"
    2 
    3 name = name[:2]+"p"+name[-2:]
    4 
    5 print(name)

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

    1 name = " aleX"
    2 
    3 name1 = name[:2]
    4 
    5 name2 = name[-2:]
    6 
    7 print(name1,name2)

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

     

    答:字符串

     

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

     1 name = " aleX"

    2 print(name.upper()) 

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

     1 name = " aleX"

    2 print(name.lower()) 

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

     1 name = " aleX"

    2 print(name[1:2]) 

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

     1 name = " aleX"

    2 print(name[:3]) 

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

     1 name = " aleX"

    2 print(name[-2:]) 

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

    1 name = " aleX"
    2 
    3 for i,v in enumerate(name):
    4 
    5     if v == "e":
    6 
    7         print("e的索引是:%s"%i)

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

     

    1 name = "xiaoming"
    2 
    3 for i in name:
    4 
    5     print(i)

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

    1 li = ['alex', 'eric', 'rain']
    2 
    3 b = li[0]+”_"+li[1]+"_"+li[2]
    4 
    5 print(b)

    a. 计算列表长度并输出

     1 print(len(li)) 
    b. 列表中追加元素 “seven”,并输出添加后的列表

    1 li = ['alex', 'eric', 'rain']
    2 
    3 li.append("seven")
    4 
    5 print(li)

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

    1 li = ['alex', 'eric', 'rain', 'seven']
    2 
    3 li.insert(0,"Tony")
    4 
    5 print(li)

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

    1 li = ['Tony', 'alex', 'eric', 'rain', 'seven']
    2 
    3 li[1] = "kelly"
    4 
    5 print(li)

     


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

    1 li = ['Tony', 'kelly', 'eric', 'rain', 'seven']
    2 
    3 li.remove('eric')
    4 
    5 print(li)

     


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

    1 li = ['Tony', 'kelly', 'eric', 'rain', 'seven']
    2 
    3 print(li.pop(1))
    4 
    5 print(li)

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

    1 li = ['Tony', 'eric', 'rain', 'seven']
    2 
    3 li.pop(2)
    4 
    5 print(li)

     


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

    1 li = ['Tony', 'eric', ‘rain’] #列表元素不够了
    2 
    3 li.pop(2)
    4 
    5 print(li)

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

    1 li = ['Tony', 'eric']
    2 
    3 b=list(reversed(li))
    4 
    5 print (b)

     

    j. 请使用 forlenrange 输出列表的索引

    1 li = ['eric', 'Tony']
    2 
    3 for i,name in enumerate(li,100):
    4 
    5     print(i,name)

    k. 请使用 enumrate 输出列表元素和序号(序号从 100 开始) l. 请使用 for 循环输出列表的所有元素 

    1 li = ['eric', 'Tony']
    2 
    3 for i,name in enumerate(li,100):
    4 
    5     print(i,name)

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

    1 li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
    2 
    3 name = str(li[2][1][1])
    4 
    5 print(name.capitalize())


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

    1 li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
    2 
    3 name = str(li[2][2])
    4 
    5 print(name.upper())

    24、写代码,有如下元组,按照要求实现每一个功能 tu = ('alex', 'eric', 'rain')
    a. 计算元组长度并输出

    1 tu = ('alex', 'eric', 'rain')
    2 
    3 print(len(tu))

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

    1 tu = ('alex', 'eric', 'rain')
    2 
    3 print(tu[1]) 

     

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

    1 tu = ('alex', 'eric', 'rain')
    2 
    3 print(tu[:2]) 

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

    1 tu = ('alex', 'eric', 'rain')
    2 
    3 for i in tu:
    4 
    5     print(i)

    e. 请使用 forlenrange 输出元组的索引

    1 tu = ('alex', 'eric', 'rain')
    2 
    3 for i in range(len(tu)):
    4 
    5     print(i)


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

    1 tu = ('alex', 'eric', 'rain')
    2 
    3 for i,name in enumerate(tu,10):
    4 
    5     print(i,name)

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

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

    1. 讲述元祖的特性     答:不可修改
    2. 请问 tu 变量中的第一个元素 “alex” 是否可被修改?     答:不可以修改
    3. c. 请问 tu 变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven
    4. 1.可以修改
    5. tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
    6. b = tu[1][2]["k2"] = [].append("Seven")
    7. print(tu)
    8. d. 请问 tu 变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven” 

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

    a. 请循环输出所有的 key b. 请循环输出所有的 value 

    c. 请循环输出所有的 key value
    d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
    e. 请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典 f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典
    g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典 

    27、转换
    a. 将字符串 s = "alex" 转换成列表
    b. 将字符串 s = "alex" 转换成元祖
    b. 将列表 li = ["alex", "seven"] 转换成元组
    c. 将元祖 tu = ('Alex', "seven") 转换成列表
    d. 将列表 li = ["alex", "seven"] 转换成字典且字典的 key 按照 10 开始向后递增 

    27、转码 

    n = "老男孩"
    a. 将字符串转换成 utf-8 编码的字节,并输出,然后将该字节再转换成 utf-8 编码字符串,再输出 a. 将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出 

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

    1 b = 0
    2 for i in range(0,101):
    3     b = b + i
    4 print(b)
    5 结果:5050

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

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

     1 li = [11,22,33,44,55,66,77,88,99]
     2 l1 = []
     3 l2 = []
     4 for i in li:
     5     if i >66:
     6         l1.append(i)
     7     else:
     8         l2.append(i)
     9 dict = {"k1":l1,"k2":l2}
    10 print(dict)

    30、购物车 功能要求: 

    要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 

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

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

    代码如下:

     1 商品列表 = [
     2 
     3 {"name": "电脑", "price": 1999},
     4 
     5 {"name": "鼠标", "price": 10},
     6 
     7 {"name": "游艇", "price": 20},
     8 
     9 {"name": "美女", "price": 998},
    10 
    11 ]
    12 
    13 总金额 = int(input("请输入金额:"))
    14 
    15 while True:#用于循环购买
    16 
    17     for i,商品 in enumerate(商品列表, 1):#循环商品信息
    18 
    19         print(i, 商品列表[i - 1]["name"], 商品列表[i - 1]["price"])#打印列表
    20 
    21     余额 = int(input("请选择商品:"))#输入商品序号
    22 
    23     if 余额 >0 and 余额 <=len(商品列表):#判断输入是否在列表中
    24 
    25         if int(商品列表[余额-1]["price"]) <= 总金额:#余额大于商品金额
    26 
    27             总金额 = 总金额 - int(商品列表
    28 
    29                                     [余额 - 1]["price"])#减商品金额
    30 
    31             print("购买 %s 成功,余额为 %s" % (商品列表[余额 - 1]["name"]
    32 
    33                                             , 总金额))#打印成功信息
    34 
    35         else:
    36 
    37             print("余额不足,请及时充值.再见!")
    38 
    39             break #退出
    40 
    41     else:
    42 
    43         print("无此商品!")
    44 
    45         continue
  • 相关阅读:
    文件下载和进度显示
    响应
    log4j2-2.13.0版本安装
    maven私服nexus仓库3.24.0版本搭建
    window下MYSQL定时备份表库的BAT
    JBoss7.3.0EAP版本安装
    jetbrains-IDEA2020版本插件搜索以及官方汉化和其他插件安装介绍
    Jenkins迁移job插件Job Import Plugin
    Appium下出现Original error: pkg.... 解决办法
    IIS10下部署.NetCore站点出现出现 HTTP 错误 500.19,错误代码:0x8007000d及一些问题
  • 原文地址:https://www.cnblogs.com/lixiaomingpython/p/6648968.html
Copyright © 2011-2022 走看看