ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

python全栈考试作业 2017-03-30

python全栈考试作业 2017-03-30 2017年3月31日1、执行 脚本的两种方式(1)指令行加上文件, 名为hello.py, 通过运用全局变量来阐释这个脚本, 默认输入值是2, 要是有输入的话, 输入值则变为3。(2)下达指令, 于命令行输入“./”加上文件, 文件为“vim hello.py”, 此步骤是默认头部指定“#!/usr/bin/env”, 接着要用“chmod 777 hello.py”, 最后执行“./hello.py”。(3)在交互解释器当中, 执行简单语法, 是由解释器来执行的, 通过ctrlz的操作来退出。2、简述位、字节的关系1字节8位3、简述 ascii、、utf-8、gbk 的关系ascii: 只有256位基于拉丁字母不包含中文:万国码各国都有2位表示UTF-8, 它属于编码的一种压缩与优化方式它不再维持最少使用2个字节的情况, 它运用可变长编码体制。其中, 英文部分采用1个字节表示 , 欧洲部分采用2字节表示 , 汉字部分采用3字节表示。gbk是中文字符集, 其中汉字占2字节, 它是默认编码, 这与linux的默认utf-8编码不一样。4、请问, 能够写出, 以 utf - 8 编码方式, “李杰” 所占的位数, 以及, 以 gbk 编码方式, “李杰” 所占的位数吗?李杰, 在utf - 8当中, 一个中文字符是3个字节(Byte)来表示 , 而1字节等于8位(bit) , 那么李杰这2个中文字符, 在utf - 8里所表示的位数是48位。李杰, 在gbk里, 一个中文字符是用2个字节来呈现的, 而1字节等于8位, 由于李杰涉及2个中文字符, 这样在gbk中就会表示为32位。5、 单行注释和多行注释分别用什么?单行注释:用 #注释内容采取多行注释的方式, 使用注释内容 , 或者使用注释内容。6、声明变量注意事项有那些?1 变量名不能以数字开头2 变量名只能是数字下划线英文字母的组合3 变量名不能有特殊符号4 某些特定的字符保留字不能用做变量名8、如何查看变量在内存中的地址?id(变量名) 如id(name)9、在执行程序之际, 自动生成的那个.pyc文件, 其作用究竟是什么呢?每当执行 xx.py 的时候, 会将编译得出的结果保存到处于内存里的位置, 其中.pyc 文件会存在, 在程序运行完毕之后, 解释器会把内容写回到 pyc 文件当中。当再次执行像 hello.py 这样的程序时, 首先程序会于硬盘中找寻 pyc 文件, 并直接进行载入, 不然的话就会重复上面所描述的过程。10、写代码a.让用户去输入用户名, 还有密码, 要是用户名是seven, 并且密码为123, 那就显示登陆成功, 不然的话就是登陆失败username input(please the input username:) password input(please the input password:) if username seven and password 123: print(login successed) else: print(login failed)注意:input()输入的任何内容都是字符串b.实现让用户去输入用户名, 再输入密码, 要是那用户名是seven, 并且密码是123, 那就显示登陆成功, 不然的话就显示登陆失败而在失败的时候, 是允许重复去输入三次的。for i in range(3): username input(please the input username:) password input(please the input password:) if username seven and password 123: print(login successed) break else: print(login failed)c.要达成这样的情况, 即让用户去输入用户名以及密码, 当这个用户名被判定为是seven或者是alex再加上密码是123的时候, 才会显示登陆成功, 不然的话就会显示登陆失败, 并且在失败的时候是允许用户重复去输入三次的。user [seven,alex] passwd 123 for i in range(3): username input(please the input username:) password input(please the input password:) if password.isdigit(): password int(password) if (username in user) and passwd password: print(logon successed) break else: print(logon failed) continue11、写代码a. 通过使用while循环, 来达成输出从2开始, 依次是减3, 加4, 减5, 加6这样一直到加100的和的效果。# 求2-34­-56 ...100的值,while循环写法 all 0 j 2 while j 100: all all (((-1) ** j) * j) j 1 print(all)b. 通过运用for循环以及range来达成输出1减去2加上3减去4加上5减去6以此类推直到加上99的和。# 求1-23-4...99的值,for循环写法 total 0 for i in range(1, 100): # print(((-1) ** (i1)*i)) total total((-1) ** (i1)*i) print(total)c. 利用while循环达成输出1, 2, 3之后跳过6输出7, 8, 9之后跳过10输出11, 12。#使用 while 循环实现输出123457891112 count 0 while count 12: count 1 if count 6: continue elif count 10: continue print(count)#使用 while 循环实现输出 1-100 内的所有奇数 count 0 while count 100: count 1 if count % 2 1: print(1-100的奇数,count)e. 使用while循环, 来进行实现, 输出1至100以内的, 所有的偶数。#使用 while 循环实现输出 1-100 内的所有偶数 count 0 while count 100: count 1 if count % 2 1: print(1-100的偶数,count)12、分别书写数字 5,10,32,7 的二进制表示bin(5) 0101bin(7) 011113、简述对象和 类的关系(可用比喻的手法)类用来描述具有相同属性和方法的对象集合它定义每个对象的属性所共有的属性和方法对象是类的实例对象通过类定义的数据结构实例假如人是一个种类我们自已本身就是类的对象把类看作是一张图纸 , 这张图纸所描绘出是建筑模型, 以及建筑如何得以实现呢 , 事实上高楼大厦可以说成好比就这样的图纸。类是抽象的对象是实际存在的。14、现下存在这样的两个变量, 请问对 n1 以及 n2 间是何关系进行简要叙述? 其中, n1 的值为 123, n2 的值同样是 123。n1和n2虽然在值是一样的在内存地址表示中不一样15、如今存在如下的两个变量, 那么请详细地叙述一下, n1以及n2呈现的都是什么样的关系呢, n1 .n2 。n1和n2虽然在值是一样的在内存地址表示中不一样16、当前存在这样两个变量, 请问对 n1 和 n2 之间的关系进行简要叙述的话, n1 是什么情况, n2 又是什么情况呢? n1 被赋值为, n2 被赋值为 n1的具体情况。n2 是对 n1 值的引用, 它们于内存中的地址相同, 且内容也相同, 仅仅是命名不同。赋值这一行为针对变量而言, 它并不会去开辟新出的内存空间, 它所做的仅仅是对新引入对象的引用进行复制操作而已, 如果说n1这个地方所呈现的值有发生变化的情况, 那么n2所代表的值依然会是原本改变之前就具备的值。17、如果存在这样一个变量, 其值为n1等于5, 那么运用int所提供的方法, 去获得这个变量最少能够通过多少个二进制位来进行表示呢?n15 print(n1.bit_length())结果318、布尔值分别有什么?True False19、阅读代码,请写出执行结果a alexb a.() print(a)print(b)请写出输出结果:alex20、存在一个名为name的变量, 其值为 aleX , 现在需要针对此变量, 按照特定要求去实现各个对应功能后进行写代码操作。a. 先将name变量对应的值, 两边空格进行移除的操作, 然后进而输入移除之后所拥有的内容。print(name.strip())b. 来看一下, 对于跟 name 变量相对应的值, 去判定一下其是不是以al作为起始部分, 然后把得出的结果进行输出。print(name.startswith(al))Truec. 鉴别一下 name 变量相应的值是不是以X 作为结尾, 然后把结果进行输出。print(name.endswith(X))Trued. , name变量所对应, 所对应的值当中里面的那个“l”, 去替换成为“p”, 然后, 然后还得输出其结果。print(name.replace(l,p))apeXe. 对 name 变量所对应的值,依据 “l” 开展分割操作,然后输出其结果。print(name.split(l”))[a, eX]f. 请问,上一题 e 分割之后得到值是什么类型?listg. 将 name 变量对应的值变大写,并输出结果print(name.upper())ALEXh. 将 name 变量对应的值变小写,并输出结果print(name.lower())alexi. 请输出 name 变量对应的值的第 2 个字符?print(name[1])j. 请输出 name 变量对应的值的前 3 个字符?print(name[:3])k. 请输出 name 变量对应的值的后 2 个字符?print(name[2:])l. 去输出一下, name变量所对应的、值里头、那个“e”、所处的索引位置、是多少呢?print(name.index(e))21、是否字符串能够进行可迭代操作? 要是可以这般做的话, 那么请运用for循环去处理每一个元素会怎样?hellowelcome to china for i in hello: print(i)22、要求通过代码达成这样的效果: 借助下划线把列表之中每一个元素连接成为字符串, 设有列表li 。alex, eric, rain22、写代码,有如下列表,按照要求实现每一个功能li alex, eric, raina. 计算列表长度并输出print(len(li))b. 列表中追加元素 “seven”,并输出添加后的列表li.append(seven) print(li)Alex这单词, eric这单词, rain这单词, seven这单词。c. 要在列表的第1个位置, 插入那叫做“Tony”的元素, 而后输出添加了该元素之后的列表。li.insert(0,Tony) print(li)这些词分别是, “托尼”, “亚历克斯’, “埃里克”, “瑞恩”, “seven ”。d. 尝试将列表之中处于第二个位置的那个元素, 变更为 “Kelly” , 随后把修改之后的这个列表展示出来。li[1]Kelly print(li)“托尼” , “凯利” , “埃里克” , “瑞恩” , “七”。e. 请删除列表中的元素 “eric”,并输出修改后的列表li.pop(li.index(eric)) print(li)“托尼”, “凯利”, “下雨”, “七”。f. 将列表当中的第2个元素予以删除, 并且把删除的那个元素所具有的值以及把元素删除之后的列表呈现出来。print(li.pop(1)) print(li)Kelly[Tony, rain, seven]g. 请删除列表中的第 3 个元素,并输出删除元素后的列表print(li.pop(2)) print(li)rainh. 列表之中, 要删除从第二个开始一直到第四个的那些元素, 然后将删除元素之后的列表给输出出来。del li[1:3] print(li)i. 请将列表所有的元素反转,并输出反转后的列表li.reverse() print(li)[Tony, Kelly, rain, seven][seven, rain, Kelly, Tony]j. 请使用 for、len、range 输出列表的索引for i in range(len(li)): print(i)k. 请使用 输出列表元素和序号(序号从 100 开始)for i,name in enumerate(li,start100): print(i ,name)l. 请使用 for 循环输出列表的所有元素for i in li: print(i)23、麻烦你补充完整li的具体内容以及功能要求, 不然没办法按照要求进行改写。hello, seven,mon,h, kelly, all, 123, 446a. 请输出 “Kelly”print(li[2][1][1])b. 运用索引, 寻觅到 all 这个元素, 之后进行变更, 把它转变为 “ALL”。li[2][2]ALL print(li)[hello, seven, [mon, [h, kelly], ALL], 123, 446]24、列出代码, 存在这样的元组, 依据要求达成每一项功能, tu等于(alex, eric, rain)。a. 计算元组长度并输出print(len(tu))b. 获取元组的第 2 个元素,并输出print(tu[1])ericc. 获取元组的第 1-2 个元素,并输出print(tu[0:2])(alex, eric)d. 请使用 for 输出元组的元素for i in tu: print(i)e. 请使用 for、len、range 输出元组的索引for i in range(len(tu)): print(i)f. 请使用 输出元祖元素和序号(序号从 10 开始)for i,name in enumerate(tu,start10): print(i,name)25、有如下变量,请实现要求的功能tu (alex,11, 22, {k1: v1, k2:age, name, k3: (11,22,33)}, 44a. 讲述元祖的特性有序不能修改b. 是否可是被修改, 请问, tu变量, 一个元素 “alex”, 在其中前面的那个?不可c. 问, tu变量里的“k2”所对应的那个值, 是什么样的类型, 它能不能被修改, 如果可以进行修改的话那就请在其中加入一个元素, 这个元素是 “Seven”。列表可以tu[1][2][k2].append(Seven) print(tu)(alex, [11, 22, {k3: (11, 22, 33), k1: v1, k2: [age, name, Seven]}, 44])d. 提问, tu变量里的k3所对应的那个值, 处于什么类型, 能不能被修改, 要是可以修改, 那么就在那儿添加一个元素 “Seven” , 是吗?元组不可以26、字典a. 请循环输出所有的 keyfor i in dic.keys(): print(i)b. 请循环输出所有的 valuefor i in dic.values(): print(i)c. 请循环输出所有的 key 和 valuefor i in dic: print(i,dic[i])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){k4: v4, k2: v2, k1: alex, k3: [11, 22, 33]}f. 对于 k3 所对应的那个值, 去向其中添加一个元素 44, 之后把变动后的字典输出出来。dic[k3].append(44) print(dic){k1: alex, k4: v4, k2: v2, k3: [11, 22, 33, 44’]}g. 在 k3 所对应的值那里, 于第 1 个位置, 插入一个元素 18, 之后输出修改好了的字典。dic[k3].insert(0,18) print(dic){k2: v2, k1: alex, k4: v4, k3: [18, 11, 22, 33, 44]}27、转换a. 将字符串 s alex 转换成列表print(list(s))[a, l, e, x]b. 将字符串 s alex 转换成元祖print(tuple(s))(a, l, e, x)b. 将列表 li alex, seven转换成元组li [alex, seven] print(tuple(li))(alex, ‘sevenc. 把含有名为元祖且其值为(Alexseven)的东西转变为列表。tu (Alex, seven) print(list(tu))[Alex, seven]d. 将列表 li alex, seven转换成字典且字典的 key 按照 10 开始向后递增#特别注意一下 dic1 {} for key,value in enumerate(li,start10): dic1[key] value print(dic1)27、转码n 老男孩a. 首先, 把字符串转变成 utf - 8 编码的字节, 接着, 将其输出, 随后, 把该字节转变成 utf - 8 编码字符串, 最后, 再输出 a。n老男孩 print(n.encode(utf-8))print(n.encode(utf-8).decode(utf-8”))b\xe8\x80\x81\xe7\x94\xb7\xe5\xad\xa9老男孩先是把字符串转变成gbk编码的字节, 接着进行输出, 在此之后呢, 又把这个字节转变成gbk编码字符串, 最后再次进行输出, 但不是随便输出, 而是按照特定要求输出。print(n.encode(gbk))print(n.encode(gbk).decode(gbk”))b\xc0\xcf\xc4\xd0\xba\xa2老男孩28、求 1-100 内的所有数的和# 求12345...100的值 total 0 for i in range(1,101): total totali print(total)505029、元素分类有如下值集合11,22,33,44,55,66,77,88,99,90将所有比66大的值, 存到字典的第一个键里面去, 把小于66的值, 存到第二个键的值里。记得要把字典的结构创建好已经存在key和number[11,22,33,44,55,66,77,88,99,90] dict_number{k1:[],k2:[]} for i in number: if i66: dict_number[k1].append(i) else: dict_number[k2].append(i) print(dict_number){k2: [11, 22, 33, 44, 55, 66], k1: [77, 88, 99, 90]}就是这样: {‘k1’: 那些比66大的全部数值, ‘k2’: 那些比66小的全部数值}。30、购物车 功能要求:要求用户去输入总资产, 比如说输入: 2000 这种数字, 然后去显示商品列表。接着让用户依据序号来选择商品, 之后加入购物车进行购买。要是商品总额比总资产大的话, 就提示账户余额不足。不然的话, 就是购买成功。goods 包含名为“电脑”的物品, 与之相应的价格数为1999的这般情况。{“name”: 那用于操作电脑的输入设备, “price”: 十}, {“name”: 供人在水上航行游玩且具备操控设备等的船交通工具, “price”: 二十}, {“name”: 容貌姣好美妙动人的年轻女子等, “price”: 九百九十八。购物车goods [ {name: 电脑, price: 1999}, {name: 鼠标, price: 10}, {name: 游艇, price: 20}, {name: 美女, price: 998}, ] money int(input(please input your money)) while True: for i,good in enumerate(goods,1): print(i,goods[i-1][name],goods[i-1][price]) choice int(input(please input product number)) if choice 0 and choice len(goods): if int(goods[choice-1][price]) money: money money - int(goods[choice-1][price]) print(buy %s success,balance %s%(goods[choice-1][name],money)) else: print(money not enough) break else: print(no product) continue
返回列表