• 老男孩python学习阶段性练习


    问题一:命名规范

    答:

    要求:
    1.数字、字母、下划线组成
    2.不能以数字开头
    3.不能是python的关键字
    建议:
    1.见名知意
    2.若需要用多个单词组成,用下划线连接
    补充:
    不使用驼峰式命名规则

    问题二:字节和位的关系

    答:

    字节(byte):计算机里最小的存储单位
    位(bit):计算机里最小的表示单位
    1byte=8bit

    问题三:看代码写结果

    name = 'wupeiqi'
    result = name.upper()
    print(name)
    print(result)
    

    答:

    print(name):'wupeiqi'
    print(result):'WUPEIQI'

    问题四:'李泉'使用utf-8编码时,占用字节及位数,使用gbk编码,占用字节及位数

    答:

    utf-8:占6个字节,48位
    gbk:占4个字节,32位

    问题五:简述一下两段代码的区别

    代码一:

    n1 = 'wupeiqi'
    n2 = n1
    

    代码二:

    n1 = 'wupeiqi'
    n2 = 'wupeiqi'
    

    答:

    代码一:n1和n2指向的是同一内存地址。
    代码二:n1和n2指向的是不同的内存地址。

    问题六:默认字符串中的常用功能并描述作用

    答:

    1.upper:字符串转大写
    2.lower:字符串转小写
    3.strip:去除两侧的空格/换行符/制表符/其他指定要去除的内容
    4.split:字符串根据指定的分隔符进行切分
    5.replace:字符串替换
    6.join:字符串拼接,以一个字符串位连接符连接一个可迭代对象中的内容,内容的每一项必须为字符串
    7.startswith:判断字符串以什么开头
    8.endswith:判断字符串以什么结尾
    9.count:计算一个字符在一个字符串中出现的次数
    10.index:返回一个字符在一个字符串中出现的位置
    11.isdigit:判断字符串的内容是否为纯数字
    12.isalpha:判断字符串的内容是否为纯字母
    13.isspace:判断字符串的内容是否为纯空白

    问题七:书写布尔值为false的常用值

    答:

    0、None、''、[]、()、{}

    问题八:书写python2和python3的区别

    答:

    1.默认解释器编码
    py2:ascii
    py3:utf-8

    2.输入
    py2:raw_input
    py3:input

    3.输出
    py2:print 要输出的内容
    py3:print(要输出的内容)

    4.除法
    py2: 只能保留整数位
    py3: 能保存所有

    5.整型
    py2: 超出长度之后就会变为long类型
    py3: 只有int没有long,所有数字都是int类型

    问题九:简述深浅拷贝

    答:

    浅拷贝:不管多么复杂的数据结构,浅拷贝都只会copy一层。

    深拷贝: 拷贝嵌套层次中的所有可变类型

    问题十:分别用for和while循环实现 1-2+3-4+5-....+99

    答:

    for循环:

    total = 0
    for i in range(1, 100):
        if i % 2 == 0:
            total -= i
        else:
            total += i
    print(total)
    

    while循环:

    total = 0
    i = 1
    while i < 100:
        if i % 2 == 0:
            total -= i
        else:
            total += i
        i += 1
    print(total)
    

    问题十一:用range实现打印 100,99,98 ...1,0

    答:

    for i in range(100, -1, -1):
        print(i)
    

    问题十二:看代码写结果

    n1 = [11, 22, 33]
    n2 = n1
    n3 = n1.copy()
    n1[1] = 666
    
    print(n1)
    print(n2)
    print(n3)
    

    答:

    [11,666,33]
    [11,666,33]
    [11,22,33]

    问题十三:打印9 *9乘法表

    答:

    for i in range(1, 10):
        for j in range(1, i + 1):
            print('%d * %d = %d' % (j, i, i * j), end=' ')
        print()
    

    问题十四:判断以下代码是否正确,如果错误则改正,否则书写结果

    name = '你{0},{1}无理取闹'
    n1 = name.format('冷酷','无情')
    print(n1)
    n2 = name.format(**['冷酷','无情'])
    print(n2)
    
    
    name = '你{xx},{oo}无理取闹'
    n3 = name.format(oo='冷酷',xx='无情')
    print(n3)
    n4 = name.format(*{'xx':'冷酷','oo':'无情'})
    print(n4)
    
    

    答:

    print(n1):你冷酷,无情无理取闹
    正确代码如下:

    n2 = name.format(*['冷酷','无情'])
    print(n2)
    
    

    print(n2):你冷酷,无情无理取闹
    print(n3):你无情,冷酷无理取闹
    正确代码如下:

    n4 = name.format(**{'xx':'冷酷','oo':'无情'})
    print(n4)
    
    

    print(n4):你冷酷,无情无理取闹

    问题十五:计算用户输入的内容中索引为奇数且值为数字的个数

    答:

    num = 0
    content = input('请输入内容:')
    for i in range(0, len(content)):
        if i % 2 != 0 and content[i].isdigit():
            num += 1
    print(num)
    

    问题十六:实现购物车

    功能要求:

    要求用户输入自己拥有的总资产,例如:2000。
    显示商品列表,让用户根据序号选择商品,加入购物车购买,
    如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
    购买成功时,需要打印购物清单
    商品列表:
    goods = [
    {'name': '电脑', 'price': 1999},
    {'name': '鼠标', 'price': 10},
    {'name': '游艇', 'price': 20},
    {'name': '美女', 'price': 998}
    ]

    答:

    # ! /usr/bin/env python
    # -*- coding:utf-8 -*-
    goods = [
        {'name': '电脑', 'price': 1999},
        {'name': '鼠标', 'price': 10},
        {'name': '游艇', 'price': 20},
        {'name': '美女', 'price': 998}
    ]
    
    goods_dict = {}  # 构建空字典存储商品信息
    goods_buy_dict = {}  # 构建空字典存储用户的购买信息
    total = 0  # 存储商品总额
    
    sum_amount = input('请输入您拥有的总资产:').strip()
    
    # 打印商品列表
    for index, item in enumerate(goods, start=1):
        goods_dict[str(index)] = list(item.values())
    print('商品列表如下:')
    for dict_index, dict_content in goods_dict.items():
        print('%s:%s %d' % (dict_index, dict_content[0], dict_content[1]))
    
    # 让用户输入购买信息,并存入到goods_buy_dict中,以购买商品序号为键,以购买数量为值
    while True:
        buy_index = input('请输入要购买的物品序号:').strip()
        if goods_dict.get(buy_index):
            while True:
                buy_count = input('请输入要购买的物品数量:').strip()
                if buy_count.isdigit():
                    goods_buy_dict[buy_index] = int(buy_count)
                    break
                else:
                    print('输入有误,请重新输入!')
                    continue
        else:
            choice = input('您输入的商品序号不在商品列表中,是否继续购买(Y/N):').strip()
            if choice.upper() == 'Y':
                continue
            else:
                break
    
    # 合计商品总额,并与用户输入总资产进行对比,如果商品总额大于总资产,提示账户余额不足,否则,购买成功,并打印购物清单
    for buy_dict_index, buy_dict_count in goods_buy_dict.items():
        total += goods_dict[buy_dict_index][1] * buy_dict_count
    if total > int(sum_amount):
        print('账户余额不足!')
    elif len(goods_buy_dict) == 0:
        print('您的购物车是空的!')
    else:
        print('购买成功!
    ')
        print('购物清单如下:')
        for k, v in goods_buy_dict.items():
            print('%s:购买%s个' % (goods_dict[k][0], v))
        print('合计金额:%s元' % (total))
    

    问题十七:看代码写结果

    for i in range(0, 5):
        print(i)
        for j in (0, i):
            print(j)
    

    答:

    0
    0
    0
    1
    0
    1
    2
    0
    2
    3
    0
    3
    4
    0
    4

    问题十八:看代码写结果

    while True:
        for i in range(10):
            print(i)
            if i == 5:
                continue
        else:
            break
    

    答:

    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

    问题十九:补充代码

    有如下列表[11, 22, 33, 44, 55, 66, 77, 88, 99, 90],将所有大于66的值保存在字典的第一个key中,将小于66的值保存到第二个key的值中。

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

    代码:

    li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    result = {}
    for row in li:
    

    答:

    li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    result = {}
    for row in li:
        if row > 66:
            if result.get('k1'):
                result['k1'].append(row)
            else:
                result['k1'] = [row]
        elif row < 66:
            if result.get('k2'):
                result['k2'].append(row)
            else:
                result['k2'] = [row]
    print(result)
    

    问题二十:写代码

    将列表 li = [11, 22, 33, 44, 55]的第一个和最后一个值相加并插入索引为3的位置

    答:

    li = [11, 22, 33, 44, 55]
    li.insert(3,li[0]+li[-1])
    print(li)
    

    问题二十一:写代码

    有以下数字:1,2,3,4,5,6,7,8共8个数字,可以组成多少个互不相同且无重复的两位数

    答:

    li = ['1', '2', '3', '4', '5', '6', '7', '8']
    result = []
    for i in li:
        for j in li:
            if i != j:
                if i + j not in result:
                    result.append(i + j)
                elif j + i not in result:
                    result.append(j + i)
    print(result)
    

    问题二十二:写代码

    有以下列表,请找到列表中任意两个数字相加等于9的元素的索引
    nums = [2, 7, 11, 15, 1, 8, 7]
    结果为:[(0, 1), (0, 6), (4, 5)]

    答:

    nums = [2, 7, 11, 15, 1, 8, 7]
    result = []
    for i in range(len(nums)):
        for j in range(i, len(nums)):
            if nums[i] + nums[j] == 9:
                result.append((i, j))
    print(result)
    

    问题二十四:基于文件实现用户登录程序

    提示用户输入用户名和密码,检查用户名和密码是否正确

    保存用户名密码的文件user.txt

    答:

    #创建文件
    li = ['alex|123123', 'root|89788fs', 'eric|mimimi']
    f = open(file='user.txt', encoding='utf-8', mode='w')
    for i in li:
        f.writelines(i + '
    ')
    f.close()
    
    #读取文件
    message = '登录失败'
    f = open(file='user.txt', encoding='utf-8', mode='r')
    input_name = input('请输入用户名:')
    input_pwd = input('请输入密码:')
    for j in f:
        l = j.strip().split('|')
        if input_name == l[0] and input_pwd == l[1]:
            message = '登录成功'
            break
    print(message)
    f.close()
    

    问题二十五:看代码书写结果

    name = '海娇'
    userlist = ['老狗', '方惊鸿']
    userlist.extend(name)
    print(userlist)
    

    答:

    ['老狗', '方惊鸿', '海', '娇']

    问题二十六:列举int、bool、str、list、tuple、dict、set中可以作为字典的key的类型

    答:

    int、bool、str、tuple

    问题二十七:转换

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

    答:

    a.

    s = 'alex'
    print(list(s))
    

    b.

    s = 'alex'
    print(tuple(s))
    

    c.

    li = ['alex', 'seven']
    print(tuple(li))
    

    d.

    tu = ('alex', 'seven')
    print(list(tu))
    

    e.

    li = ['alex', 'seven']
    d = {}
    k = 10
    for i in li:
        d[k] = i
        k += 1
    print(d)
    
  • 相关阅读:
    持续交付11-构建和部署的脚本化
    腾讯云即时通讯IM 公共整合
    腾讯云应用生成 UserSig
    「USACO 2020 US Open Platinum」Exercise
    async要点
    jQuery实现textarea高度根据内容自适应
    背景图片设置透明度而不改变内容
    input type=file实现图片上传,预览以及图片删除
    vant 字体图标不显示问题
    vue项目使用mock.js
  • 原文地址:https://www.cnblogs.com/zhanglongfei/p/11718579.html
Copyright © 2020-2023  润新知