Python基础知识练习题(一)

#!/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))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章