基础数据类型篇---作业1
1、执行python脚本的两种方式
- python 文件名
- 进入python解释器执行
2、简述位、字节的关系
8位等于1字节
3、简述ascii、unicode、utf-8、gbk的关系
- ascii 是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用 二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字符,
- Unicode是为了统一世界各国语言的不用,统一用2个bytes代表一个字符,可以表达2**16=65556个,称为万国语言,特点:速度快,但浪费空间,可以用在内存处理中,兼容了utf-8,gbk,ASCII,
- utf-8 为了改变Unicode的这种缺点,规定1个英文字符用1个字节表示,1个中文字符用3个字节表示,特点;节省空间,速度慢,用在硬盘数据传输,网络数据传输,相比硬盘和网络速度,体现不出来的,
- gbk 是中文的字符编码,用2个字节代表一个字符
4、请写出 “李杰” 分别用 utf-8 和 gbk 编码所占的位数
utf-8:占6个字节
gbk:占用4个字节
5、Pyhton 单行注释和多行注释分别用什么?
单行注释以 # 开头,多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来
6、声明变量注意事项有那些?
- 变量名必须是大小写英文字母、数字、下划线的组合
- 不能以数字开头
- 变量名对大小写敏感
- 变量名不能是关键字
- 变量名不能使用除了字母、数字、下划线之后的符号
- 变量在使用前必须对其赋值
7、如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?
print(n1.bit_length()) ----> 最少可以用3个二进制位
8、布尔值分别有什么?
真 ----- > True (非0)
假 ----- > False (0)
9、阅读代码,请写出执行结果
a = "alex"
b = a.capitalize()
print(a)
print(b)
请写出输出结果:
alex
Alex
10、写代码,有如下变量,请按照要求实现每个功能
name = " aleX"
a. 移除 name 变量对应的值两边的空格,并输入移除后的内容
print(name.strip())
b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果
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 分割之后得到值是什么类型(可选)?
列表
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.find("e"))
m. 获取子序列,仅不包含最后一个字符。如: oldboy 则获取 oldbo; root 则获取 roo
print(name[:-1])
21、字符串是否可迭代对象?如可以请使用 for 循环每一个元素?
字符串可迭代,如
name = "alex"
for i in name :
print(i)
22、请用代码实现:
a. 利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"
b. 利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain'] (可选)
li = "alexericrain"
print('_'.join(li))
li = ['alex', 'eric', 'rain']
print('_'.join(li))
23、Python2 中的 range 和 Python3 中的 range 的区别?
Python2中
range时是直接一次性全部创建出来(立即创建)
xrange跟python3中的range效果一样
Python3是一个一个创建(需要用到的时候再创建,循环时)
24、实现一个整数加法计算器:
如:content = input('请输入内容:') # 如: 5+9 或 5+ 9 或 5 + 9
content = input('请输入内容:')
num = content.split('+')
sum = int(num[0]) + int(num[1])
print(sum)
25、计算用户输入的内容中有几个十进制小数?几个字母? 如: content = input('请输入内容:') # 如:asduiaf878123jkjsfd-213928
content = input("请输入内容:")
count = 0
num_count = 0
for i in content:
if i.isalpha():
count += 1
elif i.isalnum():
num_count += 1
print('字母:',count ,'数字:', num_count)
26、简述 int 和 9 等数字 以及 str 和 "xxoo" 等字符串的关系?
类和对象的关系
27、制作趣味模板程序,需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx
content = input("请输入名字、地点、爱好,以逗号隔开:")
text = content.split(',')
muban = "敬爱可亲的{name},最喜欢在{city},地方干{aihao}"
print(muban.format(name=text[0],city=text[1],aihao=text[2]))
29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
如 "苍老师" "东京热",则将内容替换为 ***
content = input("请输入内容:")
content = content.replace("苍老师",'***')
content = content.replace('东京热','***')
print(content)
30、制作表格
循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效)
如果用户输入 q 或 Q 表示不再继续输入,将用户输入的内容以表格形式大隐
result = ''
print("输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效,输入 q 或 Q 表示不再继续输入")
while True:
username = input('用户名:').strip()
if username.lower() == 'q':
break
passwd = input("密码:").strip()
if passwd.lower() == 'q':
break
email = input("邮箱:").strip()
if email.lower() == 'q':
break
if len(username) > 20 :
username = username[0:20]
if len(passwd) > 20:
passwd = passwd[0:20]
if len(email) > 20:
email = email[0:20]
result += username + '\t' + passwd + '\t' + email + "\n"
print("用户名\t密码\t邮箱".expandtabs(30) + '\n' + result.expandtabs(30) )
浙公网安备 33010602011771号