#!/usr/bin/env python
# -*- coding:utf8 -*-
# 执行Python 脚本的两种方式
# 答:①在windows的cmd窗口下 > D:/Python/python.exe D:/ex.py
# ②配置环境变量后,在ide编辑器下直接运行
# 简述位、字节的关系
# 答:一个字节byte是八位bit
# 简述 ascii、unicode、utf-8、gbk 的关系
# 答:ascii只能正确识别英文,对中文无法识别,8位
# unicode俗称万国码,最少是16位,可以识别中文,但是若为一个英文字母浪费空间,中文占2个字节
# utf-8根据字符的实际占用空间,中文占3个字节
# gbk可识别中文,国内自己的编码
# 请写出"李杰"分别用utf-8和gbk编码所占的位数
# 答:一个中文utf-8占3个字节24位,gbk占2个字节16位
# 李杰 utf-8占48位、gbk占32位
# Pyhton 单行注释和多行注释分别用什么
# 答:单行注释>'#XXXXXX',多行注释>' """XXXXXX""" '
# 声明变量注意事项有那些
# 答:数字、字母、下划线组成,且不可以数字开头,不要用关键字、内部函数名
# 如有一个变量n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示
n1 = 5
v1 = n1.bit_length()
print(v1)
# 布尔值分别有什么
# 答:True和False,逻辑判断
# 阅读代码,请写出执行结果
#
# a = "alex"
# b = a.capitalize() #首字母大写
# print(a)
# print(b)
# 请写出输出结果:alex Alex
# 写代码,有如下变量,请按照要求实现每个功能
# name = " aleX"
name = " aleX"
# a. 移除 name 变量对应的值两边的空格,并输入移除后的内容
v1 = name.strip()
print(v1)
# b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果
v1 = name.startswith("al")
print(v1)
# c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
v1 = name.endswith("X")
print(v1)
# d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
v1 = name.replace("l", "p")
print(v1)
# e. 将 name 变量对应的值根据 “l” 分割,并输出结果
v1 = name.split("l")
print(v1)
# f. 请问,上一题 e 分割之后得到值是什么类型(可选)
t = type(v1)
print(t)
# g. 将 name 变量对应的值变大写,并输出结果
v1 = name.upper()
print(v1)
# h. 将 name 变量对应的值变小写,并输出结果
v1 = name.lower()
print(v1)
# i. 请输出 name 变量对应的值的第 2 个字符?
print(name[1])
# j. 请输出 name 变量对应的值的前 3 个字符?
print(name[0:3])
# k. 请输出 name 变量对应的值的后 2 个字符?
print(name[len(name) - 2], name[len(name) - 1])
# l. 请输出 name 变量对应的值中 “e” 所在索引位置?
v1 = name.find("e")
print(v1)
# m. 获取子序列,仅不包含最后一个字符。如: oldboy 则获取 oldbo; root 则获取 roo
print(name[0:len(name)-1])
# 21、字符串是否可迭代对象?如可以请使用 for 循环每一个元素?
for s in name :
print(s)
# 22、请用代码实现:
# a. 利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"
li = "alexericrain"
v1 = "_".join(li)
print(v1)
# b. 利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain'] (可选)
li = ['alex', 'eric', 'rain']
v1 = "_".join(li)
print(v1)
# Python2 中的 range 和 Python3 中的 range 的区别?
# 答:Python2 Python3中range自动增加可设置范围和步长
# 24、实现一个整数加法计算器:
# 如:
# content = input('请输入内容:') # 如: 5+9 或 5+ 9 或 5 + 9
"""
content = input("请输入内容:")
v1 = content.split("+")
print(v1)
s = 0
for v in v1 :
vv = int(v)
s += vv
print(s)
"""
# 25、计算用户输入的内容中有几个十进制整数?几个字母?
# 如:
# content = input('请输入内容:') # 如:asduiaf878123-¥jkjsfd213928
"""
content = input("请输入内容:")
intS = 0
charS = 0
for c in content :
if c.isdigit() :
intS += 1
continue
if c.isalpha() :
charS += 1
print(intS, charS)
"""
# 26、简述 int 和 9 等数字 以及 str 和 "xxoo" 等字符串的关系?
# 答:9是int的一个具体实例,"xxoo"是str类型的具体实例
# 27、制作趣味模板程序
# 需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
# 如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx
"""
name = input("姓名:")
addr = input("地点:")
like = input("爱好:")
print(name, "喜欢在", addr, like)
"""
# 28、制作随机验证码,不区分大小写。
# 流程:
# -‐ 用户执行程序
# -‐ 给用户显示需要输入的验证码
# -‐ 用户输入的值
# 用户输入的值和显示的值相同时现实正确信息;否则继续生成随机验证码继续等待用户输入
# 生成随机验证码代码示例:
"""
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()
content = input("请输入验证码(" + code + "):")
if code == content :
break
print("success")
"""
# 29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
# 如 "苍老师" "东京热",则将内容替换为 ***
"""
content = input("请输入:")
c = ""
if content.find("苍老师") != -1:
c = content.replace("苍老师", "***")
print(c)
"""
# 30、制作表格
# 循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效)
# 如果用户输入 q 或 Q 表示不再继续输入,将用户输入的内容以表格形式大隐
s = "name\tpassword\temail\n"
while True :
name = input("请输入用户名(不可超过20个字符,若超过只取前20个):")
if name == "q" or name == "Q" :
break
name = name[0:20]
password = input("请输入密码(不可超过20个字符,若超过只取前20个):")
password = password[0:20]
email = input("请输入邮箱(不可超过20个字符,若超过只取前20个):")
email = email[0:20]
s += (name + "\t" + password + "\t" + email + "\n")
ss = s.expandtabs(20)
print(ss)