1、执行Python脚本的两种方式
# python3 hello.py
Hello World!
你好
# cat hello.py |python
Hello World!
你好
2、简述位、字节的关系
位:计算机的计算单位,代表0或者1
字节:一字节相当于8位
3、简述ascii、unicode、utf-8、gbk的关系
4、请写出"李杰"分别用utf-8和gbk编码所占的位数
>>> len(bytes(name,encoding=‘utf-8‘))
6
>>> len(bytes(name,encoding=‘gbk‘))
4
5、Python单行注释和多行注释分别用什么?
单行注释: # 被注释内容
多行注释: ‘‘‘ 被注释内容 ‘‘‘
6、声明变量注意事项有哪些?
1)由字母、数字和下划线构成,不能以数字开头,不能任意特殊字符
2)变量定义规范,使用驼峰式或者下划线式格式
3)变量定义尽量简明,易懂,方便使用者应用
7、利用内置函数chr(),ord()以及random模块写一个简单随机4位验证码
import random
tmp=‘‘ # 最后生成的随机码
for i in range(4):
n=random.randrange(0,2) # 生成随机数1或0,用来判断下面,是生成随机数字,还是字母
if n==0:
num = random.randrange(65, 91) # 为0时候,生成大写字母
tmp+=chr(num)
else:
k=random.randrange(0,10) # 为1时候,生成数字
tmp+=str(k)
print(tmp) # 这里运行的时候每次生成的4为随机码都不同
8、如何查看变量在内存中的地址?
>>> name = ‘Alex‘
>>> id(name)
3071018080
9、执行Python程序时,自动生成的.pyc文件的作用是什么?
Python执行前生成的编译字节码文件
10、写代码
a.实现用户输入用户名和密码,当用户名为 seven且密码为123时,显示登陆成功,否则登陆失败!
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
username = input("请输入用户名:")
password = input("请输入密码:")
if username == ‘seven‘ and password == ‘123‘:
print("登录成功")
else:
print("登录失败")
b.实现用户输入用户名和密码,当用户名为 seven且密码为123时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
# cat a.py
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
error_num = 0
while True:
username = input("请输入用户名:")
password = input("请输入密码:")
if username == ‘seven‘ and password == ‘123‘:
print("登录成功")
break
else:
print("登录失败")
error_num += 1
if error_num == 3:
exit()
else:
continue
# python3 a.py
请输入用户名:1
请输入密码:1
登录失败
请输入用户名:1
请输入密码:1
登录失败
请输入用户名:1
请输入密码:1
登录失败
[email protected]:~$ python3 a.py
请输入用户名:seven
请输入密码:123
登录成功
c.实现用户输入用户名和密码,当用户名为 seven或alex且 密码为123时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
# cat a.py
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
error_num = 0
while True:
username = input("请输入用户名:")
password = input("请输入密码:")
if username == ‘seven‘ or username == ‘alex‘ and password == ‘123‘:
print("登录成功")
break
else:
print("登录失败")
error_num += 1
if error_num == 3:
exit()
else:
continue
# python3 a.py
请输入用户名:3
请输入密码:3
登录失败
请输入用户名:3
请输入密码:3
登录失败
请输入用户名:33
请输入密码:33
登录失败
# python3 a.py
请输入用户名:seven
请输入密码:123
登录成功
# python3 a.py
请输入用户名:alex
请输入密码:123
登录成功
11、写代码
1)使用while循环实现输出2-3+4-5+6.....+100的和
#!/usr/bin/env python
sum = 0
for i in range(2,101):
if i % 2 == 0:
sum += i
else:
sum -= i
print(i,sum)
print("sum:",sum)
2)求1-2+3-4+5 ... 99的所有数的和
方法1:傻逼到家的方法
sum1 =0
sum2 = 0
for i in range(1,100,2):
sum1 += i
for j in range(2,100,2):
sum2 +=j
sum3 = sum1 -sum2
print(sum3)
方法2:正常程序猿的方法
sum=0
for i in range(0,100):
if i%2==0:
sum-=i
else:
sum+=i
print(sum)
3)使用while循环输入 1 2 3 4 5 6 8 9 10
i=0
while i<10:
i += 1
if i == 7:
continue
else:
print(i)
4)输出 1-100 内的所有奇数
for i in range(1,100,2):
print(i)
5)输出 1-100 内的所有偶数
for i in range(2,100,2):
print(i)
12、分别书写数字5,10,32,7的二进制表示
bin() # 二进制
oct() # 八进制
hex() # 十六进制
>>> a = [5,10,32,7]
>>> for i in a:
... print(i,":",bin(i))
...
5 : 0b101
10 : 0b1010
32 : 0b100000
7 : 0b111
13、简述对象和类的关系
对象是类的实例化
14、现有如下两个变量,请简述n1和n2是什么关系?
# 两个变量引用同一个内存地址
>>> n1 = 123
>>> n2 = 123
>>> print(id(n1),id(n2))
1582456464 1582456464
15、现有如下两个变量,请简述n1和n2是什么关系?
# 两个变量引用同一个内存地址
>>> n1 = 123456
>>> n2 = n1
>>> print(id(n1),id(n2))
1990112 1990112
16、如有一个变量n1 = 5,请使用int的提供的方法,得出该变量至少可以用多少个二进制位表示?
>>> n1 = 5
>>> bytes(n1)
b‘x00x00x00x00x00‘
>>> len(bytes(n1))
5
17、布尔值分别有什么?
真 假
True False
0 1
18、阅读代码,请写出执行结果
a = "alex"
b = a.capitalize()
print(a)
print(b)
结果:
>>> a = "alex" >>> b = a.capitalize() >>> print(a) alex >>> print(b) Alex
19、写代码,有如下变量,请按照要求实现每个功能
name = " aleX "
a.移除name变量对应的值两边的空格,并输入移除有的内容
b.判断name变量对应的值是否以 "al"开头,并输出结果
c.判断name变量对应的值是否以 "X"结尾,并输出结果
d.将name变量对应的值中的 " l" 替换为 " p",并输出结果
e.将name变量对应的值根据 " l" 分割,并输出结果。
f.请问,上一题 e分割之后得到值是什么类型?
g.将name变量对应的值变大写,并输出结果
h.将name变量对应的值变小写,并输出结果
i.请输出name变量对应的值的第2个字符?
j.请输出name变量对应的值的前3个字符?
k.请输出name变量对应的值的后2个字符?
l.请输出name变量对应的值中 "e" 所在索引位置?
>>> name = " aleX "
>>> name.strip()
‘aleX‘
>>> name.startswith("al")
False
>>> name.endswith("X")
False
>>> name.replace("l","p")
‘ apeX ‘
>>> name.split(‘l‘)
[‘ a‘, ‘eX ‘]
>>> type(name.split(‘l‘))
<class ‘list‘>
>>> name.upper()
‘ ALEX ‘
>>> name.lower()
‘ alex ‘
>>> name[1]
‘a‘
>>> name[:2]
‘ a‘
>>> name[-2:]
‘X ‘
>>> name.index("e")
3
20、字符串是否可迭代?如可以请使用for循环每一个元素?
>>> name = " aleX "
>>> for i in name:
... print(i)
...
a
l
e
X
>>>
21、请代码实现:利用下划线将列表的每一个元素拼接成字符串,li = [‘alex‘,‘eric‘,‘rain‘]
>>> li = [‘alex‘,‘eric‘,‘rain‘]
>>> "_".join(li)
‘alex_eric_rain‘
22、写代码,有如下列表,按照要求实现每一个功能(所有练习题同样适用于元组)
li = [‘alex‘,‘eric‘,‘rain‘]
a.计算列表长度并输出
b.列表中追加元素"seven",并输出添加后的列表
c.请在列表的第1个位置插入元素 "Tony",并输出添加后的列表
d.请修改列表第2个位置的元素为 "Kelly",并输出修改后的列表
e.请删除列表中的元素"eric",并输出修改后的列表
f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
g.请删除列表中的第3个元素,并输出删除元素后的列表
h.请删除列表中的第2至4个元素,并输出删除元素后的列表
i.请将列表所有的元素反转,并输出反转后的列表
j.请使用for、len、range 输出列表的索引
k.请使用enumrate输出列表元素和序号(序号从 100 开始)
l.请使用for循环输出列表的所有元素
>>> li = [‘alex‘,‘eric‘,‘rain‘]
>>> print(len(li))
3
>>> li.append("seven")
>>> li
[‘alex‘, ‘eric‘, ‘rain‘, ‘seven‘]
>>> li.insert(0,"Tony")
>>> li
[‘Tony‘, ‘alex‘, ‘eric‘, ‘rain‘, ‘seven‘]
>>> li[1] = ‘Kelly‘
>>> li
[‘Tony‘, ‘Kelly‘, ‘eric‘, ‘rain‘, ‘seven‘]
>>> li.remove(‘eric‘)
>>> li
[‘Tony‘, ‘Kelly‘, ‘rain‘, ‘seven‘]
f:
>>> li[1]
‘Kelly‘
>>> del li[1]
>>> li
[‘Tony‘, ‘rain‘, ‘seven‘]
g:
>>> del li[2]
>>> li
[‘Tony‘, ‘rain‘]
h:
>>> li
[‘Tony‘, ‘alex‘,