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
  • 相关阅读:
    支持向量机SVM知识点概括
    决策树知识点概括
    HDU 3081 Marriage Match II
    HDU 3572 Task Schedule
    HDU 4888 Redraw Beautiful Drawings
    Poj 2728 Desert King
    HDU 3926 Hand in Hand
    HDU 1598 find the most comfortable road
    HDU 4393 Throw nails
    POJ 1486 Sorting Slides
  • 原文地址:https://www.cnblogs.com/lixiaomingpython/p/6648968.html
Copyright © 2011-2022 走看看