zoukankan      html  css  js  c++  java
  • 第一模块总结

    ### 第一套题

    1. 分别解释"=","==","+="的含义(口述)

    "="为赋值语句,把一个变量值赋值给另一个变量值;
    "=="为条件判断,判断两个值是否相等;
    "+="为加法赋值运算符

    2. 两个变量值的关系?(口述)
    - n1 = 123456
    - n2 = n1

    变量n1和n2数值上相等,指向同一个内存地址。

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

    一个中文用utf-8表示占3字节 GBK占2字节
    所以路飞学城用utf-8表示占12字节,相当于96位;GBK占8字节为64位。

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

    基本类型有:数字(整数int、长整数long和浮点数float)、字符串(文本str和字节bytes)和布尔(True和False);
    数据集有:列表list、元组tuple、字典dict和集合set。

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

    可变数据类型有:列表;
    不可变数据类型有:数字、字符串、元组。

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

    没有

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

    # -*- coding:utf-8 -*-
    list = ['alex','egon','yuan','wusir','666']
    list[4] = '999' #把三个666替换成999
    print(list)

    yuan =list.index('yuan') #获取"yuan"索引
    print(yuan)

    v=list [-3:]
    print(v)


    8. 将字符串“www.luffycity.com”给拆分成列表:li=['www','luffycity','com'] (编程)

    # -*- coding:utf-8 -*-
    s = "www.luffycity.com"
    li = s.split('.')
    print(li)



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

    # -*- coding:utf-8 -*-
    dict = {"Development":"开发小哥","OP":"运维小哥","Operate":"运营小仙女","UI":"UI小仙女"}
    dict["CEO"] = "kris" #增
    print(dict)
    dict.pop("Development") #删 或者用del dict[Development"] popitem是随机删
    print(dict)
    dict["Operate"] = "运营小哥哥" #改
    print(dict)
    op = dict.get("OP") #查
    print(op)


    10. 计算1+2+3...+98+99+100 (编程题)
    对于等差公式,请直接否定掉,因为这是考核语法以及逻辑性转化成编程的思想。公式也可以让学员说一下。

    print(sum(range(101))) #法1

    s = 0 #法2
    for i in range(101):
    s+= i
    print(s)

    s = 0 #法3
    i = 0
    while i <=100:
    s += i
    i +=1
    print(s)

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

    username = input("name:")
    place = input("place:")
    love = input("love:")
    info = '''
    敬爱的%s最喜欢在 %s干 %s
    '''% (username,place,love)
    print(info)


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

    _username = "seven" or "alex" #运用列表_username = ["seven" , "alex"]
    _passworld = "123"
    count = 0
    while count < 3:
    username = input("username:")
    passworld = input("passworld:")
    if username == "seven" or "alex" and passworld == _passworld:
    #if username in _username and passworld == _passworld: #判断
    print("登录成功")
    break
    else:
    print("登录失败,请重新输入")
    count += 1



    ### 第二套题
    1. 解释'and','or','not'(口述)

    'and','or'和'not'都为逻辑运算符
    and是两个都为True,则为True;or是一个为True,则为True,反之则为False; not表示反。

    2. 元祖和列表的区别(口述)

    元组又叫只读列表,元组不可改变且无序;元组本身不可改变,但元组中若包含其他可变元素,则这些元素可改变。
    列表有序且可修改。

    3. 列举一堆布尔值为False的情况(口述)
    [],{},None,False,'',数字0

    []为空列表;{}为空字典;()为空元组 ;""为空字符串;0

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

    python2中有整形int和long,int32位系统最多只有32位,超出32位则为long。64位系统为64位。
    python3中全部为int。
    long在python中没有指定位宽。

    5. 元祖和列表的区别(口述)

    元组又叫只读列表,元组不可改变且无序;元组本身不可改变,但元组中若包含其他可变元素,则这些元素可改变。
    列表有序且可修改。

    6. 变量命名规范 ?(口述)

    变量名只能是字母、数字或下划线的任意组合;变量名的第一个字符不能是数字;关键字不能声明为变量。
    变量名不要太长,不要用中文和拼音,不要词不达意。

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

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

    8. 内存空间的考核。(口述)
    - 问修改前后info的id是否改变
    - 问修改前后info['alex']['hobbies']的id是否改变
    ```
    info={
    'egon':{'pwd':'123','hobbies':['play','music','read']},
    'alex':{'pwd':'1234','hobbies':['music','read']},
    'wupeiqi':{'pwd':'135','hobbies':['read',]},
    }
    info['alex']['hobbies'].append('play')
    ```
    id不会改变

    9. 切割字符串"luffycity"为"luffy","city"(编程)

    s = "luffycity"
    print(s[:5] , s[5:])


    10. 猜年龄游戏(编程题)
    这道题视频有讲解

    age = 24
    count = 0
    while count < 3:
    guess_age = int(input("your guess_age:"))
    if guess_age == age:
    print("恭喜抱得美人归")
    break
    elif guess_age > age:
    print("猜小一点")
    else:
    print("try bigger")
    count += 1
    if count == 3:
    choice = input("你个笨蛋,还想玩吗?(y|Y)")
    if choice == "y"or choice == "Y":
    count = 0
    else:
    break



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

    i = 0
    s = 0
    while i<= 100:
    if i %2 == 0:
    s = s + i
    i += 1
    print(s)


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

    score = int(input("输入分数-->>:"))
    if score > 100:
    print("最高分数才100哦")
    elif score > 90:
    print("A")
    elif score > 80:
    print("B")
    elif score > 70:
    print("C")
    elif score > 60:
    print("D")
    else:
    print("E")


    ### 第三套题
    1. "is"和“==”的区别(口述)

    is是对比地址,==是对比值。
    is是判断变量是否来自同一对象同一地址;==是判断值是否相等。


    2. 声明变量注意事项有哪些?(口述)

    变量名只能是字母、数字或下划线的任意组合;变量名的第一个字符不能是数字;关键字不能声明为变量。
    变量名不要太长,不要用中文和拼音,不要词不达意。


    3. 深浅copy-引用和copy(),deepcopy()的区别(口述)

    1.引用赋值的时候,指向同一个列表地址,如果a列表重新赋予别的列表,b还是指向之前的地址,b列表不改变
    如果a列表里的值改变,那么b也会跟着改变。
    2.当使用copy()的时候,相当于整个列表包括里面的东西一起完整拷贝给你,不是指向同一个地址,
    a里面的值改变,b列表不跟着改变。但是如果a列表是嵌套列表,嵌套列表里的值发生变化,拷贝的列表b里的嵌套
    列表也会跟着改变,因为列表里的列表是指向同一个地址,相当于1.的情况
    3.使用deepcopy()的话,列表里的数地址也会不一样,所以改变列表a里的嵌套列表的数,b也不会跟着改变。
    copy()是把内存地址copy了,让它完全独立。copy是修改列表嵌套里边的内容,被copy的会发生改变;修改外层的内容,被copy的不会发生改变。
    copy.deepcopy(names) 修改列表里边嵌套的内容,deepcopy后的不会改变;修改外层的也不会改变。
    4. 各个数据类型分别是有序的?还是无序的?(口述)

    有序:列表、元组、字符串
    无序:字典、集合


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

    while True:
    year = input("Please input a year(输入q退出):")
    if year.isdigit() == True:
    if (int(year)%4 == 0 and int(year)%100 != 0) or (int(year)%400 == 0):
    print("您输入的是闰年:%s"%(year))
    else:
    print("您输入的不是闰年")
    elif year == 'q':
    break


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

    n = "路飞学城"
    n1 = n.encode('utf-8')
    print(n1)
    n2 = n1.decode('utf-8')
    print(n2)

    n3 = n.encode('gbk')
    print(n3)
    n4 = n3.decode('gbk').encode('utf-8')
    print(n4)

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

    li = ['alex','steven','egon']
    print('\_'.join(li))


    8. 自定义两个,并求交集,合集,差集。(编程)
    ```
    a = {1,2,3,4,5}
    b = {2,4,6,8,10}
    ```

    a = {1,2,3,4,5}
    b = {2,4,6,8,10}
    print(a & b) #交集 或者a.intersection b
    print(a | b) #合集 或者 a.union b
    print(a - b) #差集 或者 a.difference b

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

    sum3=[]
    i = 0
    while i <= 100:
    if i %3 == 0:
    sum3.append(i)
    i += 1
    count = 0
    for k in sum3:
    count = k +count
    print(sum3)
    print("总和为%s" %(count))

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

    info = {"Development":"开发小哥","OP":"运维小哥","Operate":"运营小仙女","UI":"UI小仙女"}
    info.pop("UI")
    info["Operate"] = "小仙女"
    for k in info:
    print(k,info[k])


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

    money = 10000
    year = 0
    while money <= 20000:
    year +=1
    money = money * (1+0.0325)
    print(year,money)
    print(year,"年以后,一万元的一年定期存款连本带息能翻番")


    12. 对列表进行增删改查(查可以是索引,值是否存在列表当中)。(编程)
    - ['alex','egon','wusir','wen','jing']

    li = ['alex','egon','wusir','wen','jing']
    li.append('kris') #增
    li.remove('egon') #删
    li[2] = 'shanshan' #改
    k = li.index('jing') #查
    print(k,li)

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

    num = 2
    while True:
    guess_num = int(input("your guess_num(0-9):"))
    if guess_num == num:
    print("恭喜你猜中了")
    break
    elif guess_num > num:
    print("猜小一点")
    else:
    print("try bigger")


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

    a = input("please input a num:") #法1
    b = input("please input another num:")
    if a > b :
    print(a)
    else:
    print(b)

    print("输入两个数比较大小") #法2
    lis = []
    while len(lis) < 2:
    num1 = input("请输入数:")
    if num1.isdigit() == True:
    lis.append(num1)
    else:
    print("您的输入有误,请输入数字:")
    maxnum = int(lis[0])
    for i in lis:
    if int(i) > maxnum:
    maxnum = int(i)
    print("较大的数为%d" %(maxnum))



    3. 有四个数字: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))




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

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


    5. 求100以内的素数和。(编程题)

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


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

    bin() #十进制转二进制
    hex() #十进制转十六进制
    oct() #十进制转八进制
    二进制转10进制:如1010: 相当于2^3+2^1=10
    十六进制转二进制:如0x9a:相当于10011010 再转10进制就是 对应
    1 1 1 1 1 1 1 1
    128 64 32 16 8 4 2 1 10011010=128+16+8+2=154
    16进制用ox为前缀或者用字母H后缀表示。

    7. python2和python3的默认字符编码(口述)

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

    8. 浮点数转换整形(口述)

    把小数点后的数去掉,取整数。用内置函数int()

    9. 计算"21days"字符串的长度。(口述/编程)

    print(len('21days'))


    10. 元祖,列表,字典有没有长度的限制?(口述)

    没有


    11. 集合的特性(口述)

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


    12. 企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?(编程)

    I = input("请输入当月利润:")
    while True:
    if I.isdigit() == True:
    if int(I) <= 10000:
    print("奖金为%d"%(int(I)*0.1))
    elif int(I) <= 200000:
    print("奖金为:%s"%(((int(I)-100000)*0.075)+100000*0.1))
    elif int(I) <= 400000:
    print("奖金为:%s" % (((int(I) - 200000) * 0.05)))
    elif int(I) <= 600000:
    print("奖金为:%s" % (((int(I) - 400000) * 0.03)))
    elif int(I) <= 1000000:
    print("奖金为:%s" % (((int(I) - 600000) * 0.015)))
    else :
    print("奖金为:%s" % (((int(I) - 600000) * 0.01)))
    break
    else:
    money = input('输入错误,请重新输入:')

    Python标准数据类型:Numbers数字,String字符串,List列表,Tuple元祖,Dict字典

    Numbers数字分为:int整型,long长整型,float浮点型,complex复数

    String字符串由数字、字母、下划线组成的一串字符,用于表示文本的数据类型

    单引号('') 双引号("")一样,三引号(''''''或"""""")可以表示多行字符串

    # bool布尔型:True,False,用于做判断;bool值的本质:True实际值是1,False实际值是0

    List列表,支持字符,数字,字符串以包含列表(即嵌套),用[]标识,有序对象。Tuple元祖,用()标识,不能二次赋值,可以理解成不可变的列表(只读列表),有序对象。

    Dict字典,用{}标识,由索引(key)和它对应的值value组成,无序对象。

    序列分类:可变序列list,不可变序列tuple、str

  • 相关阅读:
    Linux_文件系统、磁盘分区_RHEL7
    Linux_LVM、RAID_RHEL7
    Linux_LVM、RAID_RHEL7
    Linux_系统时间管理
    简单聊聊HDFS RBF第二阶段工作近期的一些进展
    LinkedBlockingQueue和ArrayBlockingQueue之间的比较
    LinkedBlockingQueue和ArrayBlockingQueue之间的比较
    公司如何使用开源软件
    公司如何使用开源软件
    ListenableFuture和CompletableFuture简单小结
  • 原文地址:https://www.cnblogs.com/shengyang17/p/8553775.html
Copyright © 2011-2022 走看看