1、 执行 Python 脚本的两种方式

1)/usr/bin/python3  xx.py
2)python3 xx.py #注xx.py需要在内容里面调用由什么解释器执行

2、 简述位、字节的关系

1Byte = 8bit
1bit 表示某个二进制 0 1

3、 简述 ascii、unicode、utf-8、gbk 的关系

最初计算机是由美国发明的,计算机需要一套相应的字符编码集ascii,来表示英文字符
后来中国也表示也用来计算机,也需要一套字符编码集来表示汉字字符,也就是gbk
由于各国需要用计算机都需要一套相应的字符编码,来表示自已国家的字符,
于是就出现统一的字符编码的集也就是unicode,所有的字符都表示两个字节,
原来英文字符只占用一个字节,存放英文字符文档,会浪费一倍的空间,美国肯定不会同意
于是就出现了utf-8编码,可变长的字符编码,英文字符编码表示1个字节,汉字表示3个字节
这下美国就开兴了哈!

4、 请写出 “你好” 分别用 utf-8 和 gbk 编码所占的位数

你好  在utf-8中一个中文字符3个字节(Byte)  1字节 = 8位(bit) 你好就在utf-8表示24位
你好 在gbk中一个中文字符用2个字节(Byte) 1字节 = 8位(bit) 你好就在gbk中表示16位

5、 Pyhton 单行注释和多行注释分别用什么?

单行注释:用 #注释内容
多行注释:用'''注释内容''' 或者 """注释内容"""

6、 声明变量注意事项有那些?

 变量名不能以数字开头
变量名只能是数字,下划线,英文字母的组合
变量名不能有特殊符号
某些特定的字符不能用做变量名

7、 如何查看变量在内存中的地址?

id(变量名)

8、 执行 Python 程序时,自动生成的  .pyc文件的作用是什么?

当执行xx.py的python会 把编译的结果会保存在位于内存中的Pycodeobject中,
python程序运行结束,python解释器则将PyCodeObject写回到pyc文件中。
当python再次执行xx.py时,首先程序会在硬盘中寻找pyc文件,直接载入,否则就重复上面的
过程
.pyc文件在_pycache_ 注:自已理解,我也不是很了解

9、写代码

a.实现用户输入用户名和密码,当用户名为seven且密码为123时,
显示登陆成功,否则登陆失败!

代码如下:

user  =  "seven"
passwd = 123
username = input("please the enter user:")
password = int(input("please the enter passwd:"))
if username == user and password == passwd:
print("logon successfull")
else:
print("logon failed")
注意:input()输入的任何内容都是字符串

b.实现用户输入用户名和密码,当用户名为 seven且密码为 123 时,
显示登陆成功,否则登陆失败,失败时允许重复输入三次

代码如下

user  =  "seven"
passwd = 123
for i in range(3):
username = input("please the enter user:")
password = input("please the enter passwd:")
if password.isdigit():
password = int(password)
if username == user and passwd == password:
print("logon successfull")
break
else:
print("logon failed")
else:
print("logon failed")

c.实现用户输入用户名和密码,当用户名为 seven 或 alex 且密码为 123 时,
显示登陆成功,否则登陆失败,失败时允许重复输入三次

代码如下:

user  =  ["seven","alex"]
passwd = 123
for i in range(3):
username = input("please the enter user:")
password = input("please the enter passwd:")
if password.isdigit():
password = int(password)
if (username in user) and passwd == password:
print("logon successfull")
break
else:
print("logon failed")
else:
print("logon failed")

10、写代码

a.使用 while 循环实现输出 2-3+4­-5+6 ...+100 的和

代码如下:

even = 0
count = 1
while count<100:
count+=1
#方法1:得出偶数-奇数+偶数-奇数...
#方法2:求出所有的偶数减去所有的奇数和 (跟小学的换位运算类似)
if count % 2 == 0:
print("2-100的偶数",count)
even += count
else:
print("2-100的奇数",count)
even -= count
print(even) #得出的结果

b.使用 for 循环和 range 实现输出1-2+3-4+5-6....-98+99  的和

代码如下:

uneven = 0
for i in range(1,100):
#方法1:得出的奇数-偶数+奇数-偶数....
#方法2:求出奇数和,求出偶数和,用奇数和减偶数和
if i % 2 == 1:
print("1-99的奇数",i)
uneven += i
else:
print("1-99的偶数",i)
uneven -= i
print(uneven) #得出结果

c.使用 while 循环实现输出1,2,3,4,5,7,8,9,11,12

代码如下:

count = 0
while count <12:
count += 1
if count == 6:
continue
elif count ==10:
continue
print(count)

d.使用 while 循环实现输出 1-100 内的所有奇数

代码如下:

count = 0
while count < 100:
count += 1
if count % 2 == 1:
print("1-100的奇数",count)

e. 使用 while 循环实现输出1-100内的所有偶数

代码如下:

count = 0
while count < 100:
count += 1
if count % 2 == 0:
print("1-100的偶数",count)

11、分别书写数字5,10,32,7的二进制表示

在python解释器中执行bin(number),把某个数字转换成二进制
二进制的表示:0b (binary)
bin(5) #0b101
bin(10) #0b1010
bin(32) #0b100000
bin(7) #0b111

12、简述对象和 类的关系(可用比喻的手法)

类:用来描述具有相同属性和方法的对象集合,
它定义每个对象的属性所共有的属性和方法,对象是类的实例
对象:通过类定义的数据结构实例 假如:人是一个种类,我们自已本身就是类的对象
类是一张图纸(该图纸上画了建筑的模型,以及怎样实现),实际高楼大夏就是图纸
实现的对象,
类是抽象的,对象是实际存在的。

13、现有如下两个变量,请简述 n1 和 n2是什么关系?

n1=123
n2=123

n1和n2关系是一样 ,我们可以用id(n1),id(n2)在内存中的地址的表示

14、现有如下两个变量,请简述 n1 和 n2是什么关系?

n1 = 123456
n2 = 123456

n1和n2虽然在值是一样的,在内存地址表示中是不一样的

注:
(在python内部中,内存还有一个(小数字池,字符串池)缓存池,对于经常用的,
在python内部编译有一个优化,在这个缓存池,如果重复使用,都是使用同一内存缓存池的内存(地址)空间
如果大于这个缓存池,则会在内存独立开辟新的一个内存(地址)空间
例如
数字的缓存池 -5 至 256
可以用不相同的变量名,相同的值,用id(变量名),看它们的内存地址)

15、现有如下两个变量,请简述 n1 和 n2 是什么关系?
n1 = 123456
n2 = n1

n2 是 n1 值的引用   它们在内存的地址是一样和内容也是一样的,只是不同命名
变量的赋值:
赋值不会开辟新的内存空间,它只是复制了新对象的引用,如果n1的值发生改变,
n2还是原来的改变之前值

16、如有一下变量 n1 =5,请使用 int 的提供的方法,
得到该变量最少可以用多少个二进制位表示?

n1= 5
print(n1.bit_length())
#结果
3

17、布尔值分别有什么?

True  False

18、阅读代码,请写出执行结果
a = "alex"
b = a.capitalize()
print(a)
print(b)
请写出输出结果:

alex    #a
Alex #b

19、写代码,有如下变量,请按照要求实现每个功能
name = " aleX"

a. 移除 name 变量对应的值两边的空格,并输入移除有的内容

print(name.strip())
#结果
aleX

b.判断 name 变量对应的值是否以 "al" 开头,并输出结果

print(name.startswith("al"))
#结果
False

c.判断 name 变量对应的值是否以 "X" 结尾,并输出结果

print(name.endswith("X"))
#结果
True

d.将 name 变量对应的值中的 “ l” 替换为 “ p”,并输出结果

print(name.replace("l","p"))
#结果
apeX

e.将 name 变量对应的值根据 “ l” 分割,并输出结果。

print(name.split("l"))
#结果
['\ta', 'eX'] #\t 表示使用了tab

f.请问,上一题 e分割之后得到值是什么类型?

print(type(name.split("l")))
#结果
<class 'list'> #列表

g.将 name 变量对应的值变大写,并输出结果

print(name.upper())
ALEX

h.将 name 变量对应的值变小写,并输出结果

print(name.lower())
#结果
alex

i.请输出 name 变量对应的值的第 2 个字符?

print(name[2])
#结果
l

j. 请输出 name 变量对应的值的前 3 个字符?

print(name[:3])
#结果
al

k. 请输出 name 变量对应的值的后 2 个字符?

print(name[-2:])
#结果
eX

l.请输出 name 变量对应的值中 “ e” 所在索引位置?

print(name.index('e'))
#结果
3

20、字符串是否可迭代?如可以请使用 for 循环每一个元素?

字符串可以迭代
代码如下:
hobby = "一条龙"
for i in hobby:
print(i)
显示结果如下:


21、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,
li = ['alex', 'eric', 'rain']

print("_".join(li))
#结果
alex_eric_rain

22、写代码,有如下列表,按照要求实现每一个功能

li = ['alex','eric','rain']

a.计算列表长度并输出

print(len(li))
#结果
3

b.列表中追加元素 “seven”,并输出添加后的列表

li.append("seven")
print(li)
#结果
['alex', 'eric', 'rain', 'seven']

c.请在列表的第1个位置插入元素 “Tony”,并输出添加后的列表

li.insert(0,"Tony")
print(li)
#结果
['Tony', 'alex', 'eric', 'rain']

d.请修改列表第2个位置的元素为 “Kelly”,并输出修改后的列表

li[1] = "Kelly"
print(li)
#结果
['alex', 'Kelly', 'rain']

e.请删除列表中的元素 “eric”,并输出修改后的列表

第一种:得出“eric”索引,通过索引来删除该值
第二种:直接删除"eric"
1)
del li[1];print(li) #结果['alex', 'rain']
li.pop(1);print(li) #结果['alex', 'rain']
2)
li.remove("eric")
print(li)
#结果
['alex', 'rain']

f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表

print(li.pop(1));print(li)
#结果
eric
['alex', 'rain']

g.请删除列表中的第3个元素,并输出删除元素后的列表

print(li.pop(2));print(li)
#结果
rain
['alex', 'eric']

h.请删除列表中的第2至4个元素并输出删除元素后的列表

del li[1:3]
print(li)
#结果
['alex']

i.请将列表所有的元素反转,并输出反转后的列表

li.reverse()
print(li)
#结果
['rain', 'eric', 'alex']

j.请使用 for、len、range 输出列表的索引

#3种方法,建议用第三种
1)for
for i in li:
#list.index()列表有相同元素的,只是的获取(相同元素中的第一个元素)的索引
print(li.index(i),i) #如果列表内有相同的元素,不建议使用此方法
#结果
0 alex
1 eric
2 rain 2)len
zero = []
for i in li:
print(len(zero),i)
zero.append(i)
#结果
0 alex
1 eric
2 rain 3)range
for i in range(len(li)):
print(i,li[i])
#结果
0 alex
1 eric
2 rain

k.请使用 enumrate 输出列表元素和序号(序号从 100 开始)

for index,i in enumerate(li,start=100):
print(index,i)
#结果
100 alex
101 eric
102 rain

l.请使用 for 循环输出列表的所有元素

for i in li:
print(i)
#结果
alex
eric
rain

23、写代码,有如下列表,请按照功能要求实现每一个功能
li=["hello",'seven',["mon",["h","kelly"],'all'],123,446]

a. 请输出 “Kelly”

print(li[2][1][1])
#结果
kelly

b.请使用索引找到 'all'元素并将其修改为 “ALL”

li[2][2] = "ALL"
print(li)
#结果
['hello', 'seven', ['mon', ['h', 'kelly'], 'ALL'], 123, 446]

24、写代码,有如下元组,按照要求实现每一个功能
tu=('alex','eric','rain')

a.计算元组长度并输出

print(len(tu))
#结果
3

b.获取元组的第2个元素,并输出

print(tu[1])
#结果
eric

c.获取元组的第 1-2个元素,并输出

print(tu[0:2])
#结果
('alex', 'eric')

d.请使用 for 输出元组的元素

for i in tu:
print(i)
#结果
alex
eric
rain

e.请使用 for、len、range 输出元组的索引

#跟22题j列表用法类似
for i in range(len(tu)):
print(i,tu[i])
#结果
0 alex
1 eric
2 rain

f.请使用 enumrate 输出元祖元素和序号(序号从 10 开始)

for index,i in enumerate(tu,start=10):
print(index,i)
#结果
10 alex
11 eric
12 rain

25、有如下变量,请实现要求的功能
tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])

a.讲述元祖的特性

元祖和列表类似都是有序的从0开始
不同的是元祖的元素是不能修改的

b.请问 tu 变量中的第一个元素 “alex” 是否可被修改?

不能修改

c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?
如果可以,请在其中添加一个元素 “Seven”

print(type(tu[1][2]["k2"]))
#结果
<class 'list'>
列表类型可以修改
tu[1][2]["k2"].append("seven")
print(tu)
#结果
('alex', [11, 22, {'k2': ['age', 'name', 'seven'], 'k3': (11, 22, 33), 'k1': 'v1'}, 44])
注:表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。
tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,
tuple的每个元素,指向永远不变。但指向的这个list本身是可变的!

d.请问 tu 变量中的"k3"对应的值是什么类型?是否可以被修改?
如果可以,请在其中添加一个元素 “Seven”

print(type(tu[1][2]["k3"]))
#结果
<class 'tuple'>
#对应值是元祖,不能修改

26、字典
dic ={'k1':"v1","k2":"v2","k3":[11,22,33]}

a.请循环输出所有的 key

for i in dic:
print(i)
#结果
k1
k3
k2
注:字典是无序的

b.请循环输出所有的value

for i in dic:
print(dic[i])
#结果
[11, 22, 33]
v2
v1

c.请循环输出所有的 key 和 value

for i in dic:
print(i,dic[i])
#结果
k2 v2
k3 [11, 22, 33]
k1 v1

d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典

dic["k4"] = "v4"
print(dic)
#结果
{'k4': 'v4', 'k2': 'v2', 'k3': [11, 22, 33], 'k1': 'v1'}

e.请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典

dic['k1'] = "alex"
print(dic)
#结果
{'k3': [11, 22, 33], 'k1': 'alex', 'k2': 'v2'}

f.请在 k3 对应的值中追加一个元素44,输出修改后的字典

dic["k3"].append(44)
print(dic)
#结果
{'k2': 'v2', 'k3': [11, 22, 33, 44], 'k1': 'v1'}

g.请在 k3 对应的值的第1个位置插入个元素18,输出修改后的字典

dic["k3"].insert(0,18)
print(dic)
#结果
{'k1': 'v1', 'k2': 'v2', 'k3': [18, 11, 22, 33]}

27、转换

a.将字符串 s="alex" 转换成列表

print(list(s))
#结果
['a', 'l', 'e', 'x']

b.将字符串 s="alex" 转换成元祖

print(tuple(s))
#结果
('a', 'l', 'e', 'x')

c.将列表 li =["alex","seven"]转换成元组

print(tuple(li))
#结果
('alex', 'seven')

d.将元祖 tu =('Alex',"seven")转换成列表

print(list(tu))
#结果
['Alex', 'seven']

e.将列表 li=["alex","seven"]转换成字典且字典的key按照10开始向后递增

dic1 = {}
for key,value in enumerate(li,start=10):
dic1[key] = value
print(dic1)
#结果
{10: 'alex', 11: 'seven'}

28、转码

n="老男孩"

a.将字符串转换成 utf-8 编码的字节,并输出,然后将该字节再转换成 utf-8 编码字符串,再输出

print(n.encode("utf-8"))
#结果
b'\xe8\x80\x81\xe7\x94\xb7\xe5\xad\xa9' print(n.encode("utf-8").decode("utf-8"))
#结果
老男孩

b.将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出

print(n.encode("gbk"))
#结果
b'\xc0\xcf\xc4\xd0\xba\xa2' print(n.encode("gbk").decode("gbk"))
#结果
老男孩

29、求1-100内的所有数的和

#3种方法
1)
print(sum(range(1,101)))
#结果
5050 2)
SUM = 0
for i in range(1,101):
SUM += i
print(SUM)
#结果
5050 3)
SUM = 0
count = 1
while count <= 100:
SUM += count
count += 1
print(SUM)
#结果
5050

30、元素分类

有如下值集合 [11,22,33,44,55,66,77,88,99,90],
将所有大于66的值保存至字典的第一个 key中,
将小于66的值保存至第二个 key 的值中。

即:{'k1':大于 66 的所有值,'k2':小于66 的所有值}

dic = {"k1":[],
"k2":[]}
aa = set([11,22,33,44,55,66,77,88,99,90])
for i in aa:
if i>= 66:
dic["k1"].append(i)
else:
dic["k2"].append(i)
print(dic)
结果
{'k1': [66, 99, 77, 88, 90], 'k2': [33, 11, 44, 22, 55]}

31、购物车
功能要求:
要求用户输入总资产,例如: 2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods = [
{"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":98},
]

shop_cart = []
goods = [
{"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":98},
]
while True:
salary = input("请输入用户余额[quit]:")
if salary.isdigit():
salary = int(salary)
break
elif salary == "quit":
exit("不想购买")
else:
print("please the enter number")
while True:
print("shop list".center(50, '*'))
for index,i in enumerate(goods):
print(index,i)
choose_number = input("请输入购买商品编号[quit]:")
if choose_number.isdigit():
choose_number = int(choose_number)
product_list = []
if 0 <= choose_number <= len(goods):
product_list.append(goods[choose_number])
if salary >= product_list[0]["price"]:
shop_cart.append(goods[choose_number])
salary -= product_list[0]['price']
print("当前购买的商品",product_list,"当前用户余额\033[1;31m{salary}\033[0m".format(salary=salary))
else:
print("余额不足")
else:
print("无效的商品编号")
elif choose_number.lower() == 'quit': print("购买的商品".center(50,"*"))
for y in shop_cart:
print(y)
exit()
else:
print("无效的输入")
#注:简易的购物车,还能继续优化

python3的基础练习题的更多相关文章

  1. Python3.x 基础练习题100例(51-60)

    练习51: 题目: 学习使用 按位与(&) . 分析: 0&0=0; 0&1=0; 1&0=0; 1&1=1. 程序: if __name__ == '__ma ...

  2. Python3.x 基础练习题100例(41-50)

    练习41: 题目: 模仿静态变量的用法. 程序: def varfunc(): var = 0 print('var = %d' % var) var += 1 if __name__ == '__m ...

  3. Python3.x 基础练习题100例(31-40)

    练习31: 题目: 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母. 分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母. 程序 ...

  4. Python3.x 基础练习题100例(21-30)

    练习21: 题目: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前 一天剩下的一半零一个.到第10天早上 ...

  5. Python3.x 基础练习题100例(11-20)

    练习11: 题目: 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析: 兔子的规律为数列1,1,2, ...

  6. Python3.x 基础练习题100例(01-10)

    练习01: 题目: 有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 分析: 可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. ...

  7. Python3.x 基础练习题100例(61-70)

    练习61: 题目: 打印出杨辉三角形. 程序: if __name__ == '__main__': a = [] for i in range(10): a.append([]) for j in ...

  8. Python3.x 基础练习题100例(81-90)

    练习81: 题目: 809??=800??+9?? 其中??代表的两位数, 809??为四位数,8??的结果为两位数,9??的结果为3位数.求??代表的两位数,及809*??后的结果. 程序: a = ...

  9. Python3.x 基础练习题100例(91-100)

    练习91: 题目: 时间函数举例1. 程序: if __name__ == '__main__': import time print (time.ctime(time.time())) print ...

随机推荐

  1. SQL Server中的“最大并行度”的配置建议

    SQL Server中的最大并行度(max degree of parallelism)如何设置呢? 设置max degree of parallelism有什么好的建议和指导方针呢?在微软官方文档R ...

  2. ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析

    在ORACLE数据库中有物理读(Physical Reads).逻辑读(Logical Reads).一致性读(Consistant Get).当前模式读(DB Block Gets)等诸多概念,如果 ...

  3. 使用logminer挖掘日志,分析历史操作 系列一

    ===============STARTED==================================== 事件起因: 业务的人mail过来说是有张表记录的10K+的优惠码记录没了,要我们确 ...

  4. 1 张图秒懂 Nova 16 种操作 - 每天5分钟玩转 OpenStack(44)

    前面我们讨论了 Instance 的若干操作,有的操作功能比较类似,也有各自的适用场景,现在是时候系统地总结一下了. 如上图所示,我们把对 Instance 的管理按运维工作的场景分为两类:常规操作和 ...

  5. 使用开发者工具调试jsp页面中的脚本

    只举例火狐和谷歌.如果是火狐,一般是用firebug,首先确保开启脚本调试: 然后刷新一下要调试的页面,点击firebug中的行内,选择当前页面: js文件一般直接显示的是js文件的名字,而页面一般是 ...

  6. 浅谈Linux中的信号处理机制(二)

    首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...

  7. java读取excel文件

    package com.execl; import java.io.File; import java.io.FileInputStream; import java.io.IOException; ...

  8. Bean生命周期及BeanFactory

    1.spring通过BeanFactory灵活配置.管理bean,Spring对管理的bean没有任何特别的要求,完全支持对POJO的管理: 2.BeanFactory有个ApplicationCon ...

  9. AC日记——I Hate It 洛谷 P1531

    题目背景 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 题目描述 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的 ...

  10. 玩转Unity资源,对象和序列化(下)

    本文将从Unity编辑器和运行时两个角度出发,主要探讨以下两方面内容:Unity序列化系统内部细节以及Unity如何维护不同对象之间的强引用.另外还会讨论对象与资源的技术实现差别. 译注:除非特别说明 ...