zoukankan      html  css  js  c++  java
  • python基础知识部分练习大全

    python基础知识部分练习大全

     

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

    答:1.>>python ../pyhton.py    

            2. >>python.py   #必须在首行有 #!/usr/bin/env python3 指定执行语言

    2、简述位、字节的关系

    答:一个字节(byte)=8位(bit)  位为最小的单位

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

    ascii:只能表示256个符号 

    unicode:万国码,各国都有 需要有2位来表示 

    utf-8:UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类

    gbk:中文字符集,是对

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

    Python
    n = "李杰"

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

    答:单行注释 #代码

            多行注释 ''' 代码 '''    Pycharm 快捷键ctrl+/ 

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

    答:id(变量名)

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

    答:运行Python程序,PyCodeObject编译保存文件,.pyc文件是PyCodeObject永久性保存文件

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

    Python
    username = input("username:")#输入账号
    password = input("password:")#输入密码
    if username == "alex" and password == "123":#判断用户名密码是否相等
        print("登录成功")
        break#循环结束
    else:#不同返回信息
        print("用户名或密码不正确,请重新输入!")
        continue

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

    Python
    for i in range(3):#程序循环3次
        username = input("username:")#输入账号
        password = input("password:")#输入密码
        if username == "alex" and password == "123":#判断用户名密码是否相等
            print("登录成功")
            break#循环结束
        else:#不同返回信息
            print("用户名或密码不正确,请重新输入!")
            continue

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

    Python
    for i in range(3):#程序循环3次
        username = input("username:")#输入账号
        password = input("password:")#输入密码
        if username == "alex" or username == "seven":#判断用户名是否相等
            if password == "123":#密码是否相同
                print("登录成功")
                break#循环结束
            else:#不同返回信息
                print("用户名或密码不正确,请重新输入!")
                continue
        else:#不相等返回提示并重新输入
            print("用户名或密码不正确,请重新输入!")
            continue

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

    Python
    i,b = 2,0
    while i <= 100:#i取2-100
        if i%2 == 0:#判断是偶数
            b = b + i #结果加当前的i     
        else:#基数
            b = b - i #结果减当前i
        i += 1 #判断完自增一
    print(b)
    #结果:51

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

    Python
    b = 0 #结果
    for i in range(1,100):
        if i%2 == 0:#判断是偶数
            b = b - i #结果加当前的i
        else:#基数
            b = b + i #结果减当前i
        i += 1 #判断完自增一
    print(b)
    #结果:50

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

    Python
    i = 1#初始值
    while i < 13: #判断小余13
        if i == 6 or i == 10:#只有6和10不输出,or是或
            pass #啥也不做跳过
        else:
            print(i)
        i += 1

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

    Python
    i = 1
    while i < 101:
        if i%2 == 0:#取2得余数为0为偶数
            pass#啥也不做
        else:
            print(i)
        i += 1

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

    Python
    i = 1
    while i < 101:
        if i%2 == 0:#取2得余数为0为偶数
            print(i)
        else:
            pass#啥也不做
        i += 1

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

    5:0000 0101   10:0000 1010   32:0010 0000  7:0000 0111

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

    答:类就是文件夹,对象就是文件夹的文件  类有列表,元组,字典等 里面的元素就是对象

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

    n1 = 123

    n2 = 123

    答:n1和n2都在内存中并列存在

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

    n1 = 123456

    n2 = 123456

    答:n1和n2都在内存中并列存在

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

    n1 = 123456

    n2 = n1

    答:n1的值在内存存在,n2的值是指向n1的值,如下图:

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

    Python
    n1 = 5
    print(n1.bit_length())  #3

    18、布尔值分别有什么?

    答:True和False   1和0

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

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

    print(a) print(b)

    请写出输出结果:alex Alex

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

    name = " aleX"

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

    Python
    name = " aleX"
    print(name.strip())

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

    Python
    name = " aleX"
    print(name.startswith("al"))

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

    Python
    name = " aleX"
    print(name.endswith("X"))

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

    Python
    #第一种
    name = " aleX"
    name = name[:2]+"p"+name[-2:]
    print(name)
    #第二种
    name = " aleX"
    name1 = ""
    for i in name:
        i = "p" if i == "l" else i #三元运算
        name1 += i
    print(name1)
    #第三种
    name = " aleX"
    name1 = ""
    for i in name:
        if i == "l":
            i = "p"
        name1 += i
    print(name1)

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

    Python
    #第一种人工分割
    name = " aleX"
    name1 = name[:2]
    name2 = name[-2:]
    print(name1,name2)
    #第二种循环分割
    name = " aleX"
    for i,v in enumerate(name):
        if v == "l":
            print(name[:i],name[i+1:])

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

    答:字符串

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

    Python
    name = " aleX"
    print(name.upper())

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

    Python
    name = " aleX"
    print(name.lower())

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

    Python
    name = " aleX"
    print(name[1:2])

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

    Python
    name = " aleX"
    print(name[:3])

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

    Python
    name = " aleX"
    print(name[-2:])

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

    Python
    name = " aleX"
    for i,v in enumerate(name):
        if v == "e":
            print("e的索引是:%s"%i)

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

    Python
    name = "hairui"
    for i in name:
        print(i)

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

    Python
    #方法一
    li = ['alex', 'eric', 'rain']
    b = li[0]+"_"+li[1]+"_"+li[2]
    print(b)
    #方法二
    li = ['alex', 'eric', 'rain']
    c = ""
    for i,name in enumerate(li,1):
        if i == len(li):#判断是否是最后一位
            c = c + name
        else:
            c = c + name + "_"
    print(c)

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

    li = ['alex', 'eric', 'rain'] a. 计算列表长度并输出

    Python
    li = ['alex', 'eric', 'rain']
    print(len(li))

    b. 列表中追加元素 “seven”,并输出添加后的列表

    Python
    li = ['alex', 'eric', 'rain']
    li.append("seven")
    print(li)

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

    Python
    li = ['alex', 'eric', 'rain']
    li.insert(0,"seven")
    print(li)

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

    Python
    li = ['alex', 'eric', 'rain']
    li[1] = "Tony"
    print(li)

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

    Python
    li = ['alex', 'eric', 'rain']
    li.remove('eric')
    print(li)

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

    Python
    li = ['alex', 'eric', 'rain']
    print(li.pop(1))

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

    Python
    li = ['alex', 'eric', 'rain']
    li.pop(2)
    print(li)

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

    Python
    li = ['alex', 'eric', 'rain','Tony']
    for i in range(3):循环3次
        li.pop(1)
    print(li)

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

    Python
    li = ['alex', 'eric', 'rain']
    print(li.reverse())

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

    Python
    li = ['alex', 'eric', 'rain','Tony']
    for i in range(len(li)):
        print(i)

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

    Python
    li = ['alex', 'eric', 'rain','Tony']
    for i,name in enumerate(li,100):
        print(i,name)

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

    a. 请输出 “Kelly”

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

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

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

    24、写代码,有如下元组,按照要求实现每一个功能tu = ('alex', 'eric', 'rain')

    a. 计算元组长度并输出

    Python
    tu = ('alex', 'eric', 'rain')
    print(len(tu))

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

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

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

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

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

    Python
    tu = ('alex', 'eric', 'rain')
    for i in tu:
        print(i)

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

    Python
    tu = ('alex', 'eric', 'rain')
    for i in range(len(tu)):
        print(i)

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

    Python
    tu = ('alex', 'eric', 'rain')
    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])

    a. 讲述元祖的特性

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

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

    答:可以修改,是列表

    Python
    tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
    b = tu[1][2]["k2"] = [].append("Seven")
    print(tu)

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

    答:元组,可以,重新给k3赋值

    Python
    tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
    b = list(tu[1][2]["k3"])#k3的value转换list
    b.append("seven")#添加值
    tu[1][2]["k3"] = tuple(b)#给k3赋值
    print(tu)

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

    a. 请循环输出所有的 key 

    Python
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    for i in dic.keys():
        print(i)

    b. 请循环输出所有的 value

    Python
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    for i in dic.values():
        print(i)

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

    Python
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    for i in dic.keys():
        print(i,dic[i])

    d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典

    Python
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    dic.setdefault("k4","v4")
    print(dic)
    #结果:{'k2': 'v2', 'k3': [11, 22, 33], 'k1': 'v1', 'k4': 'v4'}

    e. 请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典

    Python
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    dic["k1"] = "alex"
    print(dic)

    f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典

    Python
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    b = list(dic["k3"])#读取k3的value,转换成list赋值给B
    b.append(44)#将元素添加至列表B中
    dic["k3"] = b#将列表赋值给k3的value
    print(dic)

    g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典

    Python
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    b = list(dic["k3"])
    b.insert(0,18)
    dic["k3"] = b
    print(dic)

    27、转换 a. 将字符串 s = "alex" 转换成列表

    Python
    s = "alex"
    print(list(s))

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

    Python
    s = "alex"
    print(tuple(s))

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

    Python
    li = ["alex", "seven"]
    print(tuple(li))

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

    Python
    tu = ('Alex', "seven")
    print(list(tu))

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

    Python
    li = ["alex", "seven"]
    dict = {}
    for i,name in enumerate(li,10):
        dict[i] = name
    print(dict)

    28、转码

    n = "老男孩"

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

    Python
    n = "老男孩"
    print(n.encode(encoding="utf-8"))
    print(n.encode(encoding="utf-8").decode(encoding="utf-8"))

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

    Python
    n = "老男孩"
    print(n.encode(encoding="gbk"))
    print(n.encode(encoding="gbk").decode(encoding="gbk"))

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

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

    结果:5050

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

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

    Python
    li = [11,22,33,44,55,66,77,88,99]
    l1 = []
    l2 = []
    for i in li:
        if i >66:
            l1.append(i)
        else:
            l2.append(i)
    dict = {"k1":l1,"k2":l2}
    print(dict)

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

    31、购物车 功能要求:

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

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

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

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

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

    Python
    goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
    ]
    my_money = int(input("请输入金额:"))
    while True:#用于循环购买
        for i,good in enumerate(goods,1):#循环商品信息
            print(i,goods[i-1]["name"],goods[i-1]["price"])#打印列表
        user_c = int(input("请选择商品:"))#输入商品序号
        if user_c >0 and user_c <=len(goods):#判断输入是否在列表中
            if int(goods[user_c-1]["price"]) <= my_money:#余额大于商品金额
                my_money = my_money - int(goods
                                        [user_c-1]["price"])#减商品金额
                print("购买 %s 成功,余额为 %s"%(goods[user_c-1]["name"]
                                                ,my_money))#打印成功信息
            else:
                print("余额不足!再见!")
                break
        else:
            print("无此商品!")
            continue
  • 相关阅读:
    【转】CUDA5/CentOS6.4
    【转】centos 6.4 samba 安装配置
    【转】Install MATLAB 2013a on CentOS 6.4 x64 with mode silent
    【转】Getting xrdp to work on CentOS 6.4
    【VLFeat】使用matlab版本计算HOG
    Unofficial Windows Binaries for Python Extension Packages
    March 06th, 2018 Week 10th Tuesday
    March 05th, 2018 Week 10th Monday
    March 04th, 2018 Week 10th Sunday
    March 03rd, 2018 Week 9th Saturday
  • 原文地址:https://www.cnblogs.com/konghui/p/9783701.html
Copyright © 2011-2022 走看看