如下是三套Python101的检测题,你可以从中任选一套,如果你可以在40分钟之内完成,请跳过Python基础开始你的进阶之路;如果你磕磕巴巴60分钟都没有完成,请果断从0开始。

Python基础 A卷

  1. “=”,"==",在Python中分别代表什么含义。
    "=":python中赋值操作"==":判断数字或字符串是否相等"+=":例如 a+=1 等于 a = a + 1
  1. 两个变量值的关系?(口述)(1分钟)

    • n1 = 123456

    • n2 = n1

      答案:
      n1和n2的数值相等,内存地址相等
      n2的数值更改不会带动n1数值更改
      
  2. “地铁故事” 分别用 utf-8 和 gbk 编码所占的位数。

    答案:
    “地铁故事”utf-8占用12个字节(3*4=12)
    “地铁故事”gbk占用8个字节(2*4=8)
    ascii 不支持中文;英文占1个字节
    GBK 中文2个字节,英文1个字节
    Unicode 中文2个字节,英文2个字节;
    utf-8 中文3个字节,英文占1个字节,欧洲2个字节
    

    解析:

    1. 编码的故事要从ASCII码说起,ascii 不支持中文。在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。
    2. 既然你英语国家可以做ASCII,那我们中国就也可以做我们的GBK。 GBK、GB2312收编的汉字占2个字节。因为GBK是国人编码,我国人制定的规则是:GBK编码,一个汉字占2个字节,
    3. 中国有中国的GBK,日韩越有日韩越的GBK,编码就不统一了。Unicode应运而生,Unicode其实是一个字符集。缺点是:占用的内存空间比ASCII大1倍。常用中文字符用utf-8编码占用3个字节(大约2万多字),但超大字符集中的更大多数汉字要占4个字节(在unicode编码体系中,U+20000开始有5万多汉字)。
    4. 因为如上缺点“Unicode占用的内存空间比ASCII大1倍。”,于是这时候有了UTF-8。utf-8(utf16/utf32),是变长编码,英文只用一个字节即可,汉字要用三个字节;扩展B区以后的汉字占四个字节,英文字母占两个字节。UTF-8中 常用中文字符用utf-8编码占用3个字节(大约2万多字);但超大字符集中的更大多数汉字要占4个字节(在unicode编码体系中,U+20000开始有5万多汉字)。为什么UTF8却使用3个字节存储字符"你"呢?这样不是明显浪费存储空间吗?UTF8没有浪费存储空间,而且UTF8还是一个精美的设计。这是UTF8为了兼容ASNI所要付出的代价,UTF8下是完全兼容asni,也就是asni标准的下的文档,在UTF8下显示完全不是问题(因为ASNI存储字节值和UTF8是一样的)。字符都是一个一个字节存储的,UTF8肯定是一个一个字节的读取,那么UTF8怎么在完全兼容ASNI前提下,是怎么知道某个字符是需要额外字节信息的?UTF8只有固定前几位二进制来决定这个字符需要以后的几个字节,又因为为了兼容ASNI,所以额外字节也需要固定前2位"10xxxxxx",来决定这个字节值不是代表ASNI字符。ASNI的格式是“0xxxxxxx”。
      另外,UTF-16编码,通常汉字占两个字节,CJKV扩展B区、扩展C区、扩展D区中的汉字占四个字节(一般字符的Unicode范围是U+0000至U+FFFF,而这些扩展部分的范围大于U+20000,因而要用两个UTF-16),英文字母占两个字节。

Tips:处理的文本主要为中文时最好用gbk编码,英文较多时用utf8编码。
gbk和utf8两种编码之间转换要通过unicode来间接实现。

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

    答案:数字,字符串,列表,元组,字典,集合
    
  2. 数据类型的可变与不可变分别有哪些?

    答案:可变类型: list不可变类型:number, string,tuple, set区分: 是否可以被hash, 可变类型是不可以被hash的
    
  3. 元祖,列表,字典有没有长度的限制?

    答案:现在,这三个数据是没有长度限制的,但是会受到用户使用的系统的限制。eg:32位:536870912     64位:1152921504606846975
    
  4. 列表 li = [‘bbb’,‘eee’,‘yuan’,‘www’,‘666’]

    • 1.把666替换成999

    • 2.获取"yuan"索引

    • 3.假设不知道前面有几个元素,分片得到最后的三个元素( [-3:] )

      答案:1, li[-1] = 999  或者 li[li.index('666')] ="999"2, li.index("yuan")3, li[-3:]
      
  5. 将字符串s = “www.yanpeizhen.com”给拆分成列表:li=[‘www’,‘yanpeizhen’,‘com’]

    答案:print(s.split("."))或者c= s.split('.')print(c)
    
  6. 对字典进行增删改查(编程)

    d = {"Development":"开发小哥","OP":"运维小哥","Operate":"运营小仙女","UI":"UI小仙女"}
    
    答案:1, 增加: name : aaad["name"] = "aaa"2, 修改: aaa 改为 wwwd["aaa"] = "www"3, 删除: 删除 name 为 wwwd.pop("www")4, 查询: "UI":"UI小仙女"d["UI"]
    
  7. 计算1+2+3…+98+99+100 (注意不要用等差公式)。

    答案:sum = 0for i in range(1,101):  #range的范围 顾头不顾尾sum += iprint(sum)
    
  8. 制作趣味模板程序。

需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
如:天真烂漫的xxx,最喜欢在xxx干xxx

参考答案1:
name = input("你的名字")
space = input('你喜欢的活动的地方')
hobby = input('你的爱好')print('天真烂漫的{},最喜欢在{} {}'.format(name,space,hobby))
参考答案2:name = input("请输入姓名:")address = input("请输入地点:")hobby = input("请输入爱好:")print("天真烂漫的 %s, 最喜欢在%s干%s" % (name, address, hobby))
  1. 写一个三次验证登陆(编程):实现用户输入用户名和密码,当用户名为 Elisabeth 或 Elizabeth 且 密码为 123321 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次。
   答案:username = ['Elisabeth ', 'Elizabeth ']password = '123321 'count = 0while count < 3:username = input('用户名:')password = input('密码:')if username in username and password == password:print('登陆成功!')breakelse:print('登陆失败!')count += 1
参考2
check = 0
user_name = ['Elisabeth','Elizabeth']
user_password='123321'
while check<3:your_user_name = input('请输入你的用户名')if your_user_name in user_name:user_password = input('请输入密码')if your_user_password == '123321':print('登陆成功')breakelse:print('密码错误')check+=1continueelse:print('登陆账号错误')check += 1continue

Python 基础 B卷

  1. 解释’and’,‘or’,‘not’

    答案:
    not –表示取反运算。
    and –表示取与运算。
    or –表示取或运算。优先级是 not>and>or。
    and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。
    真 假   假
    真 真   真
    假 假   假
    假 真   假or 也是从左到右计算表达式,返回第一个为真的值
    真 假   真
    真 真   真
    假 假   假
    假 真   真
    
  2. 元祖和列表的区别。

    答案:1, 两者的表达形式不一样 ,list  为 [], tuple 为().2,list  为 可变类型, tuple 为不可变类型
    
  3. 列举布尔值为False的情况。

    答案:[],{},None,False,'',数字0
    
  4. python2和python3对于long(长整形)的区别。

    答案:

    python2 中数字类型分为 int(整型) 和 long(长整型)。 但是要看操作系统的位数

    32位:2…31之后就是长整型.
    64位 2…63 9223372036854775808L

    python3 中只有整型

  5. 变量命名规范有哪些?

答案:
模块名,包名 :小写字母, 单词之间用户_分割。
类名:首字母大写。
全局变量: 大写字母, 单词之间用户_分割。
普通变量: 小写字母, 单词之间用户_分割。
函数: 小写字母, 单词之间用户_分割。
实例变量: 以_开头,其他和普通变量一样 。
私有实例变量(外部访问会报错): 以__开头(2个下划线),其他和普通变量一样 。
专有变量: __开头,__结尾,一般为python的自有变量(不要以这种变量命名)。

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

答案:
简单来说:Unicode 是「字符集」
UTF-8 是「编码规则」
其中:字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)。
编码规则:将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)。
广义的 Unicode 是一个标准,定义了一个字符集以及一系列的编码规则,即 Unicode 字符集和 UTF-8、UTF-16、UTF-32 等等编码……
Unicode 字符集为每一个字符分配一个码位,例如「知」的码位是 30693,记作 U+77E5(30693 的十六进制为 0x77E5)。
UTF-8 顾名思义,是一套以 8 位为一个编码单位的可变长编码。会将一个码位编码为 1 到 4 个字节:U+ 0000 ~ U+ 007F: 0XXXXXXX
U+ 0080 ~ U+ 07FF: 110XXXXX 10XXXXXX
U+ 0800 ~ U+ FFFF: 1110XXXX 10XXXXXX 10XXXXXX
U+10000 ~ U+1FFFF: 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX
根据上表中的编码规则,之前的「知」字的码位 U+77E5 属于第三行的范围:
7 7 E 5
0111 0111 1110 0101 二进制的 77E5
--------------------------
0111 011111 100101 二进制的 77E5
1110XXXX 10XXXXXX 10XXXXXX 模版(上表第三行)
11100111 10011111 10100101 代入模版
E 7 9 F A 5
这就是将 U+77E5 按照 UTF-8 编码为字节序列 E79FA5 的过程。反之亦然。

  1. 内存空间的考核。

    • 问修改前后info的id是否改变

    • 问修改前后info[‘July’][‘hobbies’]的id是否改变

      info={'eee':{'pwd':'123','hobbies':['play','music','read']},'July':{'pwd':'1234','hobbies':['music','read']},'www':{'pwd':'135','hobbies':['read',]},
      }info['aaa']['hobbies'].append('play')
      

答案: 不变,因为是字典;不变因为是列表。

  1. 切割字符串s = “wewewcity"为"wewew”,“city”(编程)

    答案:print(s[:5])print(s[-4:])
    
  2. 猜年龄游戏。假如女主角年龄为26岁,猜多少都给提示,共可以才3次。


答案:
count = 0
age = 26while count < 3:user_guess = int(input("your guess:"))if user_guess == age :print("恭喜你答对了,可以抱得傻姑娘回家!")breakelif user_guess < age :print("try bigger")else :print("try smaller")count += 1
  1. 求1~100间所有偶数的和(亦可奇数和,使用while循环写)。

    答案:
    1,count = 0for i in range(1, 100):if i % 2 == 0:count += iprint(count)  2,count = 0for i in range(0, 100, 2):count += iprint(count)3 ,
    sum([i for i in range(1, 100) if i%2==0])
    
  2. 从键盘接收一百分制成绩(0100),要求输出其对应的成绩等级AE。其中,90分以上为’A’,8089分为’B’,7079分为’C’,60~69分为’D’,60分以下为’E’。(编程题)

    答案:p = int(input("请输入分数:"))if p >= 90:print("A")elif 80 <= p and p <= 89:print("B")elif 70 <= p and p <= 789:print("C")elif 60 <= p and p <= 69:print("D")else:print("E")
    

Python基础 C卷

  1. "is"和“==”的区别

is是对比地址,==是对比值

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

答案:
模块名,包名 :小写字母, 单词之间用户_分割。
类名:首字母大写。
全局变量: 大写字母, 单词之间用户_分割。
普通变量: 小写字母, 单词之间用户_分割。
函数: 小写字母, 单词之间用户_分割。
实例变量: 以_开头,其他和普通变量一样 。
私有实例变量(外部访问会报错): 以__开头(2个下划线),其他和普通变量一样 。
专有变量: __开头,__结尾,一般为python的自有变量(不要以这种变量命名)。

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

答案:
深浅拷贝,即可用于序列,也可用于字典

>>> import copy>>> X = copy.copy(Y)      #浅拷贝:只拷贝顶级的对象,或者说:父级对象>>> X = copy.deepcopy(Y)  #深拷贝:拷贝所有对象,顶级对象及其嵌套对象。或者说:父级对象及其子对象
  1. 各个数据类型分别是有序的?还是无序的?

    答案:
    可变类型: list
    不可变类型:number, string,tuple, set

    区分: 是否可以被hash, 可变类型是不可以被hash的

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

while True:year= int(input('加班那年是闰年吗'))if (year%4==0 and year%4 !=100) or year%400==0:print("你在闰年加班")else:print('你加班但并不在闰年')
  1. 有如下字符串:n = “不再加班”(编程题)

将字符串转换成unicode的字符编码,再将转换的字节重新转换为utf-8的字符编码

n = "不再加班"
new_unicode_n= n.encode()
print(new_unicode_n)
new_utf_n = new_unicode_n.decode()
print(new_utf_n)
  1. 将列表[‘workman’, ‘steven’, ‘egon’] 中的每一个元素使用 ‘_’ 连接为一个字符串(编程)
答案1:
n=['workman', 'steven', 'egon']m = ("_").join(n)
print(m)答案2:s = ""n = ['workman', 'steven', 'egon']for i in n:s += iprint("_".join(s))
  1. 自定义两个集合,并求交集,合集,差集。(编程)

    a = {1,2,3,4,5}
    b = {2,4,6,8,10}

    数学符号 python符号 代表含义
    - 或 \ - 差级,相对补集
    & 交集
    != 不等于
    == 等于
    in 是成员关系
  # 交集print(a & b)# 并集print(a | b)# 差集print(a-b)
  1. 求100以内不能被3整除的所有数,并把这些数字放在列表sum3=[]里,并求出这些数字的总和和平均数。
   答案1:sum3 = []count = 0for i in range(101):if i % 3 != 0:sum3.append(i)count += iprint(count)print(count/3)
答案2:
sum3 = []
total = 0
for i in range(0,101):if i%3 != 0:total+=isum3.append(i)print(total)
print(total/len(sum3))
  1. 根据字典内容打印出下面的形式
    可以不打印工整对齐的效果,主要是让学员获取key和value。
    {“Development”:“开发小哥”,“OP”:“运维小哥”,“Operate”:“运营小仙女”,“UI”:“UI小仙女”}
    效果如下:

    1. 删除了UI
    2. 修改了Operate
      Development --- 开发小哥OP          --- 运维小哥Operate     --- 小仙女
    
  2. 假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?

    答案:money = 10000rate = 0.0325years = 0while money <= 20000:years += 1money  = money * (1+rate)print(str(years))
    
  3. 对列表进行增删改查(查可以是索引,值是否存在列表当中)。(编程)
    li = [‘alex’,‘egon’,‘wusir’,‘wen’,‘jing’]

    答案:
    li = ['alex', 'egon', 'wusir', 'wen', 'jing']>> 增加li.append("yuan")print(li)>> 删除li.pop(0)li.remove("alex")del li[0]>> 修改li[3] = "li">> 查询print(li.index("egon"))

提高题

  1. 猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“猜大了,小一点试试”;小于预设的数,显示“猜小了,大一点试试”,如此循环,直至猜中该数,显示“恭喜!你猜中了!
result = 6flag = False
while flag==False:your_guess = int(input(''))if your_guess > result:print('猜大了,小一点试试')continueelif your_guess<result:print('猜小了,大一点试试')continueelif your_guess==result:print('恭喜你,猜中了')flag = True
print('Process end')
  1. 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
    程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
参照方法:
count = 0
a = [1,2,3,4]
for i in a:for j in a:for k in a:if i!=j and j !=k and i !=k:count+=1print("{}{}{}".format(i,j,k))
print(count)
  1. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
while True:number = int(input("请输入四位数的电话号码:"))a = number1 = number // 1000b = number2 = number % 1000 // 100c = number3 = number % 100 // 10d = number4 = number % 10number1 = (d + 5) % 10number2 = (c + 5) % 10number3 = (b + 5) % 10number4 = (a + 5) % 10num = number1 * 1000 + number2 * 100 + number3 * 10 + number4print(num)
  1. 求100以内的素数和。
#!/usr/bin/python
#-*- coding: UTF-8 -*-
lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))for num in range(lower,upper + 1):# 素数大于 1if num > 1:for i in range(2,num):if (num % i) == 0:breakelse:print(num)

5 . 二进制,十进制,十六进制互相转换(计算题使用计算器,别用编程的内置方法)
6. python2和python3的默认字符编码是什么?

python 2 ASCII; Python3 内存是unicode

7. 浮点数转换整形。

a= 4.3333
b = int(a)
print(b)
  1. 计算"21days"字符串的长度。
       a= "21days"print(len(a))
  1. 元祖,列表,字典有没有长度的限制?

目前python这些列表,字典和元祖是没有长度限制的。但是他们会受到计算机内存的限制,发生crash。

  1. 集合的特性。

因为集合中的元素是不可重复的,且无序的,所以不支持索引,切片,连接。
集合只支持成员操作符 迭代(for循环)

Python小白入门练习试题相关推荐

  1. python入门基础系列_03python—9个基础常识-python小白入门系列

    <python小白入门系列教程> 专栏 • 第03篇 文 | xc_718 深度好文:1828字 | 4分钟阅读 ​ 1. 注释 1)单行注释:****# #注释内容 print('123 ...

  2. python入门基础系列八_03python—9个基础常识-python小白入门系列

    <python小白入门系列教程> 专栏 • 第03篇 文 | xc_718 深度好文:1828字 | 4分钟阅读 ​ 1. 注释 1)单行注释:##注释内容 print('123') #1 ...

  3. python小白入门可以参看下

    Python小白一枚,不知道如何入门,上网整理了一些点,简单记录一下,希望对接下来的学习有帮助吧. 1.找到合适的入门书籍,大致读一次,搞懂(太难的跳过) 2.做些简单习题,字符串比较,读取日期之类 ...

  4. python小白入门系列--· (1) 安装Win10ubuntu16.04双系统

    本人python小白一枚,写文章主要是为了记录总结学习过程中遇到的各种坑,请各位大佬多多指教,也为想入门的童鞋们先探探路. 首先想说一下双系统的必要性: 男票原本建议先在win10装虚拟机,在linu ...

  5. python小白入门

    浅谈python学习 ,老年人看了都能学会的python 文章目录 浅谈python学习 ,老年人看了都能学会的python 特点 注释 变量 数据类型 import: 引入外部的包,因为你不能把所有 ...

  6. 《Python小白入门》python环境安装,一步一截图

    点赞再看,养成习惯 编程语言都要运行在特定的环境内,因为直接写的代码操作系统是不认识的,所以需要创建一个能运行的环境,所以需要安装python的环境. 就像是你去了潜水,没有氧气是不行的,所以你带了一 ...

  7. python小白入门第二课-标识符数据类型字符串方法

    一.标识符 定义:标识符就是一个名字,它的主要作用就是作为变量.函数.类.模块以及其他对象的名称.就好像我们人一样,需要起个名字,便于称呼.指代. 1.变量就是标识符的一种 2.标识符:只要是在pyt ...

  8. Python小白入门分享

    前话 从去年7月就开始学Python语言了,直至现在快有一年时间了,在这段艰苦的时间里非常感谢CSDN,每当我遇到问题的时候都可以为我给出答案,CSDN可以称得上我这个自学狗的全能老师.在这一年里的P ...

  9. python excel按月累计_基金定投只有高手才能玩?不,你用Excel就可以品职Python小白入门课堂...

    只有大神能玩的量化? 相信很多学金融,或对金融感兴趣的读者都会觉得量化是一个非常高深.需要很深数学功底的领域.但事实上,尽管有很多量化模型应用到了一些十分高深的数学模型,量化离我们的生活并没有那么的遥 ...

最新文章

  1. SFTP命令基本使用
  2. 使用 Windows 服务器备份执行 Exchange 2010 备份
  3. TCP/IP协议(三次握手)
  4. C#面向对象名词解释(四)
  5. 音视频编解码的国际标准
  6. 好奇!仅 13kB 大小的游戏,源码长啥样?
  7. vs2010下使用dmp文件和pdb文件调试时dump、exe和pdb三个文件要保持版本一致的原因
  8. The method getTextContent() is undefined for the type Node 错误解决办法
  9. java 树最大距离_寻找二叉树最远的叶子结点(实例讲解)
  10. MyBatis-Plus-Generator配置
  11. Yii2如何用migrate快速建表
  12. Java实现贪吃蛇大作战小游戏(完整版)
  13. Servlet 运行工作原理详解
  14. 如何绕过mac地址过滤_Maccms V8 后台Getshell #2(绕过过滤)
  15. html更改超链接下划线颜色,超链接去掉下划线_WORD中不取消超链接,只改超链接的颜色和去掉下划线...
  16. cygwin安装gcc/g++
  17. 七、基于机器学习方法对销售预测的研究
  18. 关于雇用和解雇的词汇
  19. 记录-吴军《硅谷来信》有感
  20. 深度模型(一):LSTM

热门文章

  1. 创建React项目(入门保姆级)
  2. 老男孩教育-42期-冯家豪-决心书
  3. 超级解霸害死人——安装evc过程种出现“没有文件扩展.vbs的脚本引擎”的问题...
  4. 解决npm和node升级步骤
  5. 推荐一款广告过滤软件
  6. 数据库 | VirusCircBase:环状 RNA病毒数据库
  7. Javaweb入职第二天
  8. 营改增后计算机维修费税率,2020国税维修费税率是多少?
  9. 360RePlugin 常见问题
  10. PHP 中的设计模式详解