• Day4.作业题


    作业题:

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

    2、简述位、字节的关系
    8位(bit)=1字节(byte)
     
    3、简述ascii、unicode、utf-8、gbk的关系
    ASCII码使用一个字节编码,只有256个字符 ;Unicode能够表示全世界所有的字节;GBK是只用来编码汉字的,每个汉字占两个字节,UTF-8是一种针对Unicode的可变长度字符编码,UTF-8用1到6个字节编码Unicode字符,其中一个字母占1个字节,一个汉字占3个字节

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

    5、Pyhton单行注释和多行注释分别用什么?
    单行注释用#,多行注释用‘‘‘’’’,即三对单引号

    6、声明变量注意事项有那些?
    变量名只能由数字、字母、下划线组合而成,但数字不能开头,某些特定代码也不能用作变量名,比如while、for等

    7、如何查看变量在内存中的地址?
    print(id(变量名))

    8、执行Python程序时,自动生成的 .pyc 文件的作用是什么?
    因为py文件是可以直接看到源码的,用.pyc就相当于对源码“加密”了,所以就需要编译为pyc后,再发布出去

    9、写代码
    a.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
    1 username = input("username:")
    2 password = input("password:")
    3 if username == "seven" and password == "123":
    4     print("登陆成功!")
    5 else:
    6     print("登陆失败!")
    b.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
     1 count=0
     2 while count<3:
     3     username = input("username:")
     4     password = input("password:")
     5     if username == "seven" and password == "123":
     6         print("登陆成功!")
     7         break
     8     else:
     9         print("登陆失败!")
    10     count+=1
    c.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
     1 count=0
     2 while count<3:
     3     username = input("username:")
     4     password = input("password:")
     5     if username == "seven" or "alex" and password == "123":
     6         print("登陆成功!")
     7         break
     8     else:
     9         print("登陆失败!")
    10     count+=1
     
    10、写代码
    a. 使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和:(51)
     1 total=0
     2 i =2
     3 while i<=100:
     4     if i%2==1:
     5         i=-i
     6     total+=i
     7     if i<0:
     8         i=-i
     9     i+=1
    10 print(total)
    b. 使用for循环和range实现输出 1 - 2 + 3 - 4 + 5 - 6 ... + 99 的和:(50)
     1 i=1
     2 total=0
     3 for i in range(100):
     4     if i%2==0:
     5         i=-i
     6     total+=i
     7     if i<0:
     8         i=-i
     9     i+=1
    10 print(total)
    c. 使用while循环实现输出 1,2,3,4,5, 7,8,9, 11,12
    1 i=1
    2 while i<=12:
    3     if i != 6 and i != 10:
    4         print(i)
    5     i+=1
    d. 使用while循环实现输出 1-100 内的所有奇数
    1 i=1
    2 while i<=100:
    3     if i%2==1:
    4         print(i)
    5     i += 1
    e. 使用while循环实现输出 1-100 内的所有偶数
    1 i=1
    2 while i<=100:
    3     if i%2==0:
    4         print(i)
    5     i += 1
     
    11、分别书写数字 5,10,32,7的二进制表示
    5:101  10:1010  32:10000  7:111
     
    12、简述对象和类的关系(可用比喻的手法)
    类是抽象的,属于定义的范畴,对象就是把类具体实例化。比如在超市中蔬菜算是一个类,那么白菜就是蔬菜类里面的一个对象

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

     内存地址相同

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

    内存地址不同

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

    内存地址相同


    16、如有一下变量n1 = 5,请使用int的提供的方法,得到该变量最少可以用多少个二进制位表示?(3)
    1 n1=5
    2 print(int.bit_length(n1))
     
    17、布尔值分别有什么?
    数字表示:1真 0假;常量表示:Ture真 False假
     
    18、阅读代码,请写出执行结果
    a = "alex"
    b = a.capitalize()
    print(a)
    print(b)
    请写出输出结果:
    alex
    Alex

    19、写代码,有如下变量,请按照要求实现每个功能
    name = " aleX"
    a. 移除name变量对应的值两边的空格,并输出移除后的内容
    b. 判断name变量对应的值是否以 "al" 开头,并输出结果
    c. 判断name变量对应的值是否以 "X" 结尾,并输出结果
    d. 将name变量对应的值中的 “l” 替换为 “p”,并输出结果
    e. 将name变量对应的值根据 “l” 分割,并输出结果。
    f. 请问,上一题 e 分割之后得到值是什么类型?
    g. 将name变量对应的值变大写,并输出结果
    h. 将name变量对应的值变小写,并输出结果
    i. 请输出name变量对应的值的第2个字符?
    j. 请输出name变量对应的值的前3个字符?
    k. 请输出name变量对应的值的后2个字符?
    l. 请输出name变量对应的值中 “e” 所在索引位置?
     1 name = " aleX"
     2 print(name)
     3 print(name.strip())#a
     4 print(name.startswith("al"))#b
     5 print(name.endswith("X"))#c
     6 print(name.replace("l","p"))#d
     7 print(name.split("l"))#e
     8 print(type(name.split("l")))#f
     9 print(name.upper())#g
    10 print(name.casefold())#h
    11 print(name[1:2])#i
    12 print(name[0:3])#j
    13 print(name[-2:])#k
    14 print(name.index("e"))#l

    输出结果如下:

    20、字符串是否可迭代?如可以请使用for循环每一个元素?
    字符串可以迭代,代码如下:
    a="abcdefg"
    for i in range(int(a.index(a[-1]))):
        print(a[i:i+1])
    21、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain']
    li=['alex','eric','rain']
    print("_".join(li))
    print(type("_".join(li)))

    输出结果如下:

    22、写代码,有如下列表,按照要求实现每一个功能
    li = ['alex', 'eric', 'rain']
    a. 计算列表长度并输出
    b. 列表中追加元素 “seven”,并输出添加后的列表
    c. 请在列表的第 1 个位置插入元素 “Tony”,并输出添加后的列表
    d. 请修改列表第 2 个位置的元素为 “Kelly”,并输出修改后的列表
    e. 请删除列表中的元素 “eric”,并输出修改后的列表
    f. 请删除列表中的第 2 个元素,并输出删除的元素的值和删除元素后的列表
    g. 请删除列表中的第 3 个元素,并输出删除元素后的列表
    h. 请删除列表中的第 2至4个元素,并输出删除元素后的列表
    i. 请将列表所有的元素反转,并输出反转后的列表
    j. 请使用for、len、range输出列表的索引
    k. 请使用enumrate输出列表元素和序号(序号从100开始)
    l. 请使用for循环输出列表的所有元素
    li=['alex','eric','rain']
    print(len(li))#a
    li.append("seven")
    print(li)#b
    li.insert(0,"Tony")
    print(li)#c
    li[1]="Kelly"
    print(li)#d
    li.remove("eric")
    print(li)#e
    print(li.pop(1))
    print(li)#f
    li.pop(2)
    print(li)#g

    由于h题不存在2至4个元素,所以h题以后的操作均使用d题运行后的结果,代码如下:

    del li[1:4]
    print(li)#h
    li.reverse()
    print(li)#i
    for i in range(len(li)):
        print(i)#j
    for i in enumerate(li,100):
        print(i)#k
    for i in range(len(li)):
        print(li[i])#l
    23、写代码,有如下列表,请按照功能要求实现每一个功能
    li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
    a. 请输出 “Kelly”
    b. 请使用索引找到 'all' 元素并将其修改为 “ALL”
    li=["hello",'seven',["mon",["h","kelly"],'all'],123,446]
    print(li[2][1][1])
    li[2][2]="ALL"
    print(li)
    24、写代码,有如下元组,按照要求实现每一个功能
    tu = ('alex', 'eric', 'rain')
    a. 计算元组长度并输出
    b. 获取元组的第 2 个元素,并输出
    c. 获取元组的第 1-2 个元素,并输出
    d. 请使用for输出元组的元素
    e. 请使用for、len、range输出元组的索引
    f. 请使用enumrate输出元组元素和序号(序号从10开始)
    tu=('alex','eric','rain')
    print(len(tu))#a
    print(tu[1])#b
    print(tu[0:2])#c
    for i in tu:
        print(i)#d
    for i in range(len(tu)):
        print(i)#e
    for i in enumerate(tu,10):
        print(i)#f

    输出结果如下:

    25、有如下变量,请实现要求的功能
    tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
    a. 讲述元组的特性
    和列表一样但它是只读列表
    b. 请问tu变量中的第一个元素 “alex” 是否可被修改?
    不可以被修改,可变为列表后修改
    c. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
    tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
    print(type(tu[1][2]["k2"]))

    输出结果如下:

    “k2”对应的值是列表类型,可以被修改,代码如下:

    tu[1][2]["k2"].append("Seven")
    print(tu)
    d. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
    tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
    print(type(tu[1][2]["k3"]))

    输出结果如下:

    “k3”对应的值是元组类型,不可被修改,但可以通过更改为列表类型进行添加操作,代码如下:

    tu[1][2]["k3"]=list(tu[1][2]["k3"])
    tu[1][2]["k3"].append("Seven")
    tu[1][2]["k3"]=tuple(tu[1][2]["k3"])
    print(tu)
    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,输出修改后的字典
    dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
    for k in dic:
        print(k)#a
    for i in dic:
        print(dic[i])#b
    for key in dic:
        print(key,dic[key])#c
    dict2={"k4":"v4"}
    dic.update(dict2)
    print(dic)#d
    dic["k1"]="alex"
    print(dic)#e
    dic["k3"].append(44)
    print(dic)#f
    dic["k3"].insert(0,18)
    print(dic)#g

    输出结果如下:

    27、转换
    a. 将字符串 s = "alex" 转换成列表
    b. 将字符串 s = "alex" 转换成元组
    c. 将列表 li = ["alex", "seven"] 转换成元组
    d. 将元组 tu = ('Alex', "seven") 转换成列表
    e. 将列表 li = ["alex", "seven"] 转换成字典且字典的key按照 10 开始向后递增
    s ="alex"
    a =list(s)#a
    print(type(a))
    b=tuple(s)#b
    print(type(b))
    li=["alex","seven"]
    print(tuple(li))#c
    tu=('Alex',"seven")
    print(list(tu))#d
    li=["alex","seven"]
    dict = {}
    for k,v in enumerate(li,10):
        dict[k] = v
    print(dict)#e
    28、转码
    n = "老男孩"
    a. 将字符串转换成utf-8编码的字节,并输出,然后将该字节再转换成utf-8编码字符串,再输出
    b. 将字符串转换成gbk编码的字节,并输出,然后将该字节再转换成gbk编码字符串,再输出
    n="老男孩"
    a=n.encode("UTF-8")
    print(a)
    b=a.decode("UTF-8")
    print(b)
    c=n.encode("GBK")
    print(c)
    d=c.decode("GBK")
    print(d)

    输出结果(在Python3中运行的结果)如下:

    29、求1-100内的所有数的和:(5050)
    total=0
    for i in range(101):
        total +=i
    print(total)
    30、元素分类
    有如下值集合 [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]
    dic1={"k1":[]}
    dic2={"k2":[]}
    for i in a:
        if i > 66:
            dic1["k1"].append(i)
        if i < 66:
            dic2["k2"].append(i)
    print(dic1)
    print(dic2)

    输出结果如下:

    31、购物车
    功能要求:
    要求用户输入总资产,例如:2000
    显示商品列表,让用户根据序号选择商品,加入购物车
    购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
    goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
     1 goods = [
     2     {"name": "电脑", "price": 1999},
     3     {"name": "鼠标", "price": 10},
     4     {"name": "游艇", "price": 20},
     5     {"name": "美女", "price": 998},
     6 ]
     7 money=int(input("请输入您的账户金额:"))
     8 print("商品列表:")
     9 while True:
    10     for k,v in enumerate(goods,1):
    11         for i in range(len(goods)):
    12             if k-1==i:
    13                 print(k,goods[i]["name"],goods[i]["price"])
    14     id=int(input("请选择您需要购买的商品:"))
    15     free=money-goods[id-1]["price"]
    16     if free<0:
    17         print("对不起,您的账户余额不足!")
    18         break
    19     else:
    20         print("成功加入购物车")
    21         money=free
  • 相关阅读:
    tar命令,vi编辑器
    Linux命令、权限
    Color Transfer between Images code实现
    利用Eclipse使用Java OpenCV(Using OpenCV Java with Eclipse)
    Matrix Factorization SVD 矩阵分解
    ZOJ Problem Set
    Machine Learning
    ZOJ Problem Set
    ZOJ Problem Set
    ZOJ Problem Set
  • 原文地址:https://www.cnblogs.com/lxyoung/p/6646711.html
Copyright © 2020-2023  润新知