#!/usr/bin/env python # -*- coding:utf-8 -*- # Python基础知识练习题(一) #1、使用while循环输入1 2 3 4 5 6 8 9 10 a = 0 while a < 10: a += 1 if a ==7: print("【我是小七,我会隐身,你看不到我】",end=" ") continue print(a,end=" ") print('\n') print("##########################################################") #2、求1-100的所有数的和 m = 0 sumNum = 0 while m < 100: m += 1 sumNum += m print(sumNum) print("##########################################################") #3、输出1-100内的所有奇数 i = 0 while i <=100: if i % 2 == 1: print(i,end=" ") i += 1 print('\n') print("##########################################################") #4、输出1-100内的所有偶数 j = 0 while j <= 100: if j % 2 == 0: print(j,end=" ") j += 1 print('\n') print("##########################################################") #5、求1-2+3-4+5...99的所有数的和 import random i1=0 i2=0 for i in range(100): if i%2==0: i1 -= i else: i2 += i i3=i1+i2 print(i3) #6、用户登陆(三次机会重试) count = 0 while count < 3: n1 = input('请输入用户名:') n2 = input('请输入密码:') if n1 == 'root' and n2 == 'root': print('登录成功') break else : print('用户名或者密码错误,请重新输入:') count += 1 if count == 3: print('对不起,您以及输入错误3次,登录程序终止') print("##########################################################") #ctrl+? 快捷键为选中行做整体注释 #7、执行Python脚本的两种方式 """ 答:第一种,配置好环境变量,找到pyhon文件,形式:python 1.py 第二种,进入解释器,实时输入输出,形式:python 在Linux在,在文件内部加入该语句#!/usr/bin/env python,即解释器的位置,终端执行文件./1.py。 """ #8、简述位、字节的关系 """ 答:位bit,字节byte,一字节等于8bit。计算机计算时是以字节为单位,存储是以位为单位。 """ #9、 # 简述ascii,unicode,utf-8的关系 # 简述ascii、unicode、utf8、gbk编码所占位数 #请写出“李杰”分别用utf-8和gdk编码所占的字节数 """ 答:最先出现的是ascii编码,其次是unicode编码,又因为每个国家的标准不同,继而出现unicode的压缩编码utf-8。ascii码8位,unicode码16位。用ascii码表示的字符,再用unicode表示就会造成内存浪费,提出的utf-8编码,能用多少表示就用多少表示。 UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节,英文字母占两个字节。 GBK编码,一个汉字占两个字节,英文字母占两个字节。 “李杰”utf-8:6字节,gdk:4字节 """ #10、Python单行注释和多行注释分别是什么 """ 答:单行注释是“#”快捷键ctrl+/,多行注释是“''' '''”或“""" """” """ #11、声明变量注意事项有哪些? """ 答:数字,下划线,字母,数字不能开头,一定不能和关键字名重复。尽量不要用python内置函数名,可能会出错。 """ #12、如果有一个变量n1=5,请使用int的提供的方法,得到该变量最少可以用多少个二进制位表示? """ 答:bit_length(n1),结果为:3。 """ #13、布尔值分别有什么? """ 答:布尔值有两个True、False 对于空字符串""是False,数字0是假 """ #14、阅读代码,请写出执行结果 a="alex" b=a.capitalize() print(a) print(b) # 请写出输出结果:alex Alex #15、写代码,有如下变量,请按照要求实现每个功能 name = " aleX " # a. 移除 name 变量对应的值两边的空格,并输入移除后的内容 print(name.strip()) # b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果 name = "aleX" print(name.startswith("al")) # c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果 print(name.endswith("X")) # d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果 print(name.replace("l","p")) # e. 将 name 变量对应的值根据 “l” 分割,并输出结果。 print(name.split("l")) # f. 请问,上一题 e 分割之后得到值是什么类型(可选)? name_1 = name.split("e") print(type(name_1)) #class 'list' # g. 将 name 变量对应的值变大写,并输出结果 print(name.upper()) # h. 将 name 变量对应的值变小写,并输出结果 print(name.lower()) # i. 请输出 name 变量对应的值的第 2 个字符? print(name[1]) # j. 请输出 name 变量对应的值的前 3 个字符? print(name[0:3]) # k. 请输出 name 变量对应的值的后 2 个字符? print(name[-2:]) # l. 请输出 name 变量对应的值中 “e” 所在索引位置? print(name.index("e")) # m. 获取子序列,仅不包含最后一个字符。如: oldboy 则获取 oldbo; root 则获取 roo a = "oldboy" print(a[0:-1]) #16、字符串是否可迭代对象?如可以请使用 for 循环每一个元素? # 可迭代对象===可以用for循环进行获取。 str_1="asdasafghyyh" for item in range(0,len(str_1)): print(str_1[item],end=" ") #17、请用代码实现: #a. 利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain" li = "alexericrain" li_1 = "_".join(li) print(li_1) #b. 利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain'] (可选) li = ['alex','eric','rain'] li_1 = "_".join(li) print(li_1) #18、Python2 中的 range 和 Python3 中的 range 的区别? """ 答:Python2中的range将遍历的内容直接输出,Python3中的range将遍历的内容放到内存中不直接输出, 等到程序需要调用循环迭代时再输出,节省内存,内含垃圾回收机制。 """ #19、实现一个整数加法计算器: # 如:content = input('请输入内容:') # 如: 5+9 或 5+ 9 或 5 + 9 print("19、") content = input('请输入内容(如 9 + 5):') v1,v2 = content.split("+") v1 = int(v1) v2 = int(v2) print(v1+v2) #20、计算用户输入的内容中有几个十进制小数?几个字母? #如: content = input('请输入内容:') 如:asduiaf878123jkjsfd-‐213928 print("20、") num_1 = 0 num_2 = 0 content = input('请输入内容:') for item in content: if item.isdecimal(): num_1 += 1 elif item.isalpha(): num_2 += 1 else: break print("十进制数个数:" + str(num_1)) print("字母个数:" + str(num_2)) # 21、简述 int 和 9 等数字 以及 str 和 "xxoo" 等字符串的关系? """ 答:就是类和对象的关系。 """ #22、制作趣味模板程序 #需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实 #如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx template = "敬爱可亲的 {0},最喜欢在 {1} 地方干 {2}" input_1 = input("name>>>") input_2 = input("place>>>") input_3 = input("doing>>>") v = template.format(input_1,input_2,input_3) print(v) #23、制作随机验证码,不区分大小写。 # 流程: # -‐ 用户执行程序 # -‐ 给用户显示需要输入的验证码 # -‐ 用户输入的值 # 用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入 # 生成随机验证码代码示例: def check_code(): import random checkcode = '' for i in range(4): current = random.randrange(0,4) if current != i: temp = chr(random.randint(65,90)) else: temp = random.randint(0,9) checkcode += str(temp) return checkcode while True: code = check_code() print(code) app = input("请输入验证码:") if code.upper() == app.upper(): print("输入正确") break else: print("输入错误") s = input("是否重新输入?") if s == "no": break else: continue #24、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符: #如 "苍老师" "东京热",则将内容替换为 *** print("24、") content = input('请输入内容:') if "苍老师" in content or "东京热" in content: print("您输入的信息中有敏感词语") new_content = content.replace("苍老师", "***").replace("东京热", "***") print(new_content) else: print(content) #25、制作表格 # 循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效) # 如果用户输入 q 或 Q 表示不再继续输入,将用户输入的内容以表格形式打印 print("25、") s = "" while True: name = input("请输入用户名:") if name == "q" or name == "Q": break if len(name) >= 20: name = name[0:20] pwd = input("请输入密码:") if len(pwd) >= 20: pwd = pwd[0:20] email = input("请输入邮箱:") if len(email) >= 20: email = email[0:20] template = "{0}\t{1}\t{2}\n" v = template.format(name, pwd, email) s += v print(s.expandtabs(20))