zoukankan      html  css  js  c++  java
  • 基础练习

    口述题
    1.分别解释"=","==","+="的含义。

    = 是赋值语句 把一个值赋值给另一个值
    == 是判断语句 判断两个值是否相等
    += 是赋值语句 a+=1 等价于 a=a+1

    2.两个变量的关系?
    n1=123456
    n2=n1

    把123456赋值给变量n1,把n2赋值给n1,n1,n2共同指向123456这个地址

    3.请写出“路飞学城”分别用utf-8和gbk编码所占的位数

    一个中文用utf-8表示占3个字节,用gbk表示占2个字节
    “路飞学城”用utf-8表示占12个字节,用gbk表示占8个字节
    一个字节相当于8位 12个字节相当于96位 8个字节相当于64位

    4. 简述Python中的几种数据类型

    数据类型:基本数据类型和数据集
    基本数据类型:数字、字符串、布尔
    数据集:列表、元组、字典、集合

    5. 数据类型的可变与不可变分别有哪些?

    可变数据类型:列表、字典value、集合
    不可变数据类型:数字、字符串、元组、字典key

    6.元祖,列表,字典有没有长度的限制?

     没有,根据内存大小定义

    7. 解释‘and‘,‘or‘,‘not‘

    and,or,not 逻辑运算符
    and表示两者都为TRUE,则为TRUE
    or表示两者有一个判断为布尔TRUE 则结果为TRUE 反之则False
    not 表示取反 如x为True,not x 则为False

    8. 元组和列表的区别

    元组又叫只读列表,不可改变,且无序。
    列表有序,并且可以修改。

    9.列举一堆布尔值为False的情况

    空列表 [],
    空字典{},
    空元祖(),
    空字符串“”
    0

    10.python2和python3对于long(长整形)的区别。

    Python2中有整型int和长整型long,int32位最多只有32位,超了32位则为long,64位系统为64位
    Python3中全为int
    long在Python中没有指定位宽

    11.变量命名规范 ?

    1.变量名只能是字母、数字和下划线的任意组合
    2.变量名的第一个字符不能是数字
    3.关键字不能声明为变量名
    变量名不要过长,最好不要使用中文和拼音,还有不能乱起变量名,比如名不搭意。

    12.阐述一下unicode和utf-8的区别(或者unicode在python3的作用)

    unicode又叫万国码,涵盖全世界的编码,所有字符和符号最少由16位(2个字节)表示,和别的编码有对应映射关系。
    utf-8对unicode进行了优化,uft-8对于英文只占用1个字节,欧洲字符2个字节,东亚字符3个字节,特殊字符4个字节。
    在python3中默认在内存存储代码的形式就是unicode,为了方便不同国家的人查看代码。


    13.深浅copy-引用和copy(),deepcopy()的区别

    • 1.引用赋值的时候,指向同一个列表地址,如果a列表重新赋予别的列表,b还是指向之前的地址,b列表不改变,# 如果a列表里的值改变,那么b也会跟着改变。
    • 2.当使用copy()的时候,相当于整个列表包括里面的东西一起完整拷贝给你,不是指向同一个地址,# a里面的值改变,b列表不跟着改变。但是如果a列表是嵌套列表,嵌套列表里的值发生变化, 拷贝的列表b里的嵌套列表也会跟着改变,因为列表里的列表是指向同一个地址,相当于1.的情况
    • 3.使用deepcopy()的话,列表里的数地址也会不一样,所以改变列表a里的嵌套列表的数,b也不会跟着改变。总结:浅拷贝,只拷贝顶级的对象,或者说父级对象 深拷贝,拷贝所有的对象,顶级对象及其嵌套对象,或者说父级对象及其子对象

    14.python2和python3的默认字符编码

    python2默认字符编码是ASCII
    python3默认编码是unicode

    15.集合的特性

     确定性:元素必须可以hash。互异性:元素不可相同。无序性。

    编程题
    16.列表[‘alex‘,‘egon‘,‘yuan‘,‘wusir‘,‘666‘]
    1.把666替换成999
    2.获取"yuan"索引
    3.假设不知道前面有几个元素,分片得到最后的三个元素

    li=["alex","egon","yuan","wusir","666"]
    li[-1]="999"
    print(li)
    print(li.index("yuan"))
    print(li[-3:])
    View Code

    17.对字典进行增删改查
    {"Development":"开发小哥","OP":"运维小哥","Operate":"运营小仙女","UI":"UI小仙女"}

    dict={"Development":"开发小哥","OP":"运维小哥","Operate":"运营小仙女","UI":"UI小仙女"}
    #
    dict["boss"]="alex"
    print(dict)
    
    #
    dict.pop("OP")
    # del dict["OP"]
    print(dict)
    #
    dict["OP"]="基佬"
    print(dict)
    #
    find= dict.get("UI")
    print(find)
    View Code

    18.计算1+2+3...+98+99+100

    count=0
    for i in range(1,101):
        count+=i
    print(count)
    
    count=0
    i=1
    while i<101:
        count+=i
        print(count)
        i+=1
    View Code

    19. 制作趣味模板程序
    需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
    如:敬爱可爱的xxx,最喜欢在xxx地方干xxx

    user_name = input("请输入你的名字:")
    user_place = input("请输入你的地点:")
    user_hobby = input("请输入你的爱好:")
    print("敬爱的可爱的%s,最喜欢在%s地方干%s" % (user_name, user_place, user_hobby))
    View Code

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

    count = 0
    while count < 3:
        username = input("请输入你的名字:")
        passwd = input("请输入你的密码:")
        if username == "seven" or username == "alex":
            if passwd == "123":
                print("恭喜你,登入成功")
                break
            else:
                print("用户名或密码不正确,登入失败")
                continue
        else:
            print("登入失败")
        count +=1
    View Code

    21.切割字符串"luffycity"为"luffy","city"

    L="luffycity"
    print(L[0:5])
    print(L[5:])
    View Code

    22.猜年龄游戏

    age=23
    count=0
    while count<3:
        guess_age=int(input("你要输入的年龄是:"))
        if guess_age == age:
            print("恭喜你,猜对了")
            break
        elif guess_age < age:
            print("猜小了")
        else:
            print("猜大了")
        count += 1

    23.求1~100间所有偶数的和(亦可奇数和,使用while循环写)

    count=0
    i=0
    while count<=100:
        if count%2==0:
            i+=count
            print(i)
        count += 1
    print(i)
    View Code

    24.从键盘接收一百分制成绩(0~100),要求输出其对应的成绩等级A~E。
    其中,90分以上为‘A‘,80~89分为‘B‘,70~79分为‘C‘,60~69分为‘D‘, 60分以下为‘E‘。

    while True:
        user_grade=int(input(">>:"))
        if user_grade >=90 and user_grade<=100:
            print("A")
        elif user_grade>=80 and user_grade<=89:
            print("B")
        elif user_grade >= 70 and user_grade <= 79:
            print ("C")
        elif user_grade>=60 and user_grade<=69:
            print("D")
        else:
            print("E")
    View Code

    25.输入一年份,判断该年份是否是闰年并输出结果。(该程序可以重复使用 使用while True)
    注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

    while True:
        user_year=int(input(">>:"))
        if user_year%4==0 and user_year%100!=0:
            print("该年是闰年")
        elif user_year%400==0:
            print ("该年是闰年")
        else:
            print("该年不是闰年")
    View Code

    26.有如下字符串:n = "路飞学城"
    - 将字符串转换成utf-8的字符编码,再将转换的字节重新转换为utf-8的字符编码
    - 将字符串转换成gbk的字符编码,再将转换的字节重新转换为utf-8的字符编码

    n = "路飞学城"
    n1 = n.encode(encoding='utf-8')
    print(n1)
    n2 = n1.decode(encoding='utf-8')
    print(n2)
    n3 = n.encode(encoding='gbk')
    print(n3)
    n4 = n3.decode(encoding='gbk')
    print(n4)
    n5 = n4.encode(encoding='utf-8')
    print(n5)
    n6 = n5.decode(encoding='utf-8')
    print(n6)
    View Code

    27.将列表[‘alex‘, ‘steven‘, ‘egon‘] 中的每一个元素使用 ‘\_’ 连接为一个字符串

    li=["alex","steven","egon"]
    # s=("\_").join(li)
    # print(s)
    print(("\_").join(li))
    View Code

    28.自定义两个,并求交集,合集,差集。

    a1 ={3,4,5,6}
    a2 ={1,2,3,4}
    b=a1|a2  #并集
    print(b)
    c = a1-a2  #差集
    print(c)
    j = a1&a2  #交集
    print(j)
    View Code

    29.求100以内不能被3整除的所有数,并把这些数字放在列表sum3=[]里,并求出这些数字的总和和平均数。(计算的时候告诉学员,sum是一个关键词,不能当作变量)

    sum3=[]
    sums=0
    count=0
    while count<=100:
        if count%3!=0:
            sum3.append(count)
            sums+=count
        count+=1
    print(sums)
    print(sum3)
    print(sums/len(sum3))
    View Code

    30.根据字典内容打印出下面的形式
    可以不打印工整对齐的效果,主要是让学员获取key和value。
    {"Development":"开发小哥","OP":"运维小哥","Operate":"运营小仙女","UI":"UI小仙女"}
    效果如下:
    1. 删除了UI
    2. 修改了Operate

    ```
    Development --- 开发小哥
    OP --- 运维小哥
    Operate --- 小仙女
    ```

    info ={"Development":"开发小哥","OP":"运维小哥","Operate":"运营小仙女","UI":"UI小仙女"}
    del info['UI']
    print(info)
    info["Operate"]='小仙女'
    print(info)
    # for items in info.items():
    #     print(items)
    for i in info:
        print(i+'----------'+info[i])
    View Code

    31.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?

    money=10000
    years=0
    while money<20000:
        years+=1
        money=money*(1+0.0325)
    print(str(years)+"年以后,存款能连本带息能翻番")
    View Code

    32.对列表进行增删改查(查可以是索引,值是否存在列表当中)。

    [‘alex‘, ‘egon‘, ‘wusir‘, ‘wen‘, ‘jing‘]

    li=['alex','egon','wusir','wen','jin']
    增
    li.append('wulei')
    print(li)
    删
    li.pop()
    print(li)
    
    del li[-1]
    print(li)
    
    li.remove('alex')
    print(li)
    改
    li[1]="heihei"
    print(li)
    查
    L=li.index('alex')
    print(L)

    33.猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!

    the_number = 9
    while True:
        user_guess = input("猜猜 年龄>>:")
        if user_guess.isdigit() is True:
            if the_number ==int(user_guess):
                print("祝贺")
                break
            elif int(user_guess) >the_number:
                print("太大")
            else:
                print("太小 ")
    View Code

    34.编写一个python程序,输入两个数,比较它们的大小并输出其中较大者。

    number1 = int(input("请输入一个数字>>>:"))
    number2 = int(input("请输入一个数字>>>:"))
    if number1>number2:
        print(number1)
    else:
        print(number2)
    View Code 

    35.有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
    程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。

    nums = []
    for index1 in range(1,5):
        for index2 in range(1,5):
            for index3 in range(1,5):
                if index1!=index2 and index2 != index3 and index3 != index1:
                    num = 100*index1 +10*index2 +index3
                    if num not in nums:
                        nums.append(num)
    print(nums)
    print(len(nums))
    View Code

    36.某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5, 然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

    data = input("输入4个数字>>")
    data = list(''.join(data))
    print(data)
    for index, i in enumerate(data):
        print(data[index])
        data[index] = (int(i)+5) % 10
    print(data)
    data.reverse()
    print(data)
    View Code

    37.求100以内的素数和。

    for i in range(1,100):
        a =1
        for j in range(int(i/2)):
            if (1+i)%(2+j) ==0:
                a =0
                break
        if a == 1:
            print(i+1)
    View Code

    38.二进制,十进制,十六进制互相转换(计算题,让学员使用计算器,别用编程的内置方法) 

    1 十进制转二进制:bin ()
    2 十进制转十六进制:hex ()
    3 十进制转八进制:oct ()
    4 二进制转10进制:如1010: 相当于8 + 2 = 10
    5 十六进制转二进制:如0x9a: 相当于10011010
    6 再转10进制就是对应
    7     1       1    1     1     1    1    1    1
    8     128    64    32    16    8    4    2    1
    9     10011010 = 128 + 16 + 8 + 2 = 154
    View Code

    39.企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;

    利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;

    20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;

    60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,

    从键盘输入当月利润I,求应发放奖金总数?

    while True:
        money = int(input("企业利润是:"))
        if money<=100000:
            print("奖级金为:%s"%(money*10/100))
        elif money>100000 and money<=200000:
            print("奖励金为:%s"%((money-100000)*7.5/100+100000*10/100))
        elif money>200000 and money<=400000:
            print("奖励金为:%s"%((money-200000)*5/100))
        elif money>400000 and money<=600000:
            print("奖励金为:%s"%((money-400000)*3/100))
        elif money>600000 and money<=1000000:
            print("奖励金为:%s"%((money-600000)*1.5/100))
        elif money > 1000000:
            print("奖励金为:%s" %( (money-1000000)*1/100))
    View Code

     

  • 相关阅读:
    Zookeeper 选举机制
    Hadoop Yarn任务调度器
    Hadoop Yarn工作机制 Job提交流程
    Hadoop 切片机制
    Hadoop MapReduce工作流程
    Hadoop HDFS读写数据流程
    数据仓库 拉链表
    高动态范围照片*5
    Java实现的窗口计算器
    拍摄制作星轨拖尾视频 之 前期拍摄
  • 原文地址:https://www.cnblogs.com/xfxing/p/9036455.html
Copyright © 2011-2022 走看看