python学习 第一模块习题总结

part1 习题

  1. 简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型?

  2. Pyhton 单行注释和多行注释分别用什么?

  3. 布尔值分别有什么?

  4. 如何查看变量在内存中的地址?

  5. 简述位、字节的关系?

  6. 简述ASCII,Unicode,utf-8, gbk 的关系,gbk中一个中文字符占几个字节,一个英文字符占几个字节?

  7. 请写出 “路飞学城alex” 分别用 utf-8 和 gbk 编码所占的位数

  8. 分别解释"=","==","+=","%="的含义是什么?

  9. break与continue的作用是什么?

  10. 取第3个学生的第2个爱好watchTV

    students=[
        {'name':'tom','age':18,'hobbies':['sing','play']},
        {'name':'rose','age':88,'hobbies':['read','sleep']},
        {'name':'jack','age':99,'hobbies':['swim','watchTV','talk']},
    ] 
    
  11. 将字符串s = "www.luffycity.com"给拆分成列表:li=[‘www’,‘luffycity’,‘com’] (编程)

  12. 将字符串name='tom say hello world,tom say bye’替换成rose say hello world,tom say bye

  13. 求1~100间所有偶数的和

  14. 如下代码 给alex追加play的爱好,请问追加前和后两次打印的id(info)是否一致? 两次打印的id(info[‘alex’][‘hobbies’])是否一致?

    info={
    'egon':{'pwd':'123','hobbies':['play','music','read']},
    'alex':{'pwd':'1234','hobbies':['music','read']},
    'wupeiqi':{'pwd':'135','hobbies':['read',]},
    }
    
    print(id(info))
    print(id(info['alex']['hobbies']))
    info['alex']['hobbies'].append('play')  # 给alex追加play的爱好
    print(id(info))
    print(id(info['alex']['hobbies']))
    
  15. li = [‘周’,‘周星星’,‘麻花藤’,‘周扒皮’] #删除姓周的名后返回li列表

  16. 输入一年份,判断该年份是否是闰年并输出结果。(编程题)

    注:凡符合下面两个条件之一的年份是闰年。 
    (1) 能被4整除但不能被100整除。 
    (2) 能被400整除。
    
  17. dic = {‘k1’: “v1”, “k2”: “v2”, “k3”: [11,22,33]}

    -请循环输出所有的key
    -请循环输出所有的value
    -请循环输出所有的key和value
    
  18. li=[‘alex’, ‘eric’, ‘rain’]

    - 请删除列表中的元素“eric”,并输出修改后的列表
    - 请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表        
    - 请使用enumrate输出列表元素和序号(序号从100开始)
    
  19. read,readline,readlines的区别

  20. -删掉最后一行(a.txt)
    -把“不要回答”替换成“绝对不能回复”

!

part2 习题答案

1:

编译型语言:
    使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。
特点:
    在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件。
执行方式:
    源代码 --> 编译(一次)--> 目标代码  --> 执行(多次)-->输出


解释型语言:
    使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。
特点:
    解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。
执行方式:
    源代码 --> 解释器(每次执行都需要解释)--> 输出

编译型:C、C++、C#
解释型:Python、PHP、Rudy、Java

2:

单行注释:#
多行注释:'''	'''、"""	"""

3:

True
False

4:

#-*- coding:utf-8 -*-
n = 10
print(id(n))  # 打印变量 n 在内存中的地址

5:

1字节=8位二进制

6:

ascll是国际标准编码,8位二进制表示一个字符,最先产生

Unicode是万国码,通用,16位二进制表示一个字符

utf - 8,能用多少位表示就用多少位,3个字节表示中文,可以和Unicode互相转换

gbk 是为汉字发明,2个可以表示中文,可以和Unicode互相转换

7:

utf-8:100
gbk:68

UTF-8:对英文字符只用1Bytes表示,对中文字符用3Bytes
GBK:2Bytes代表一个中文字符,1Bytes表示一个英文字符

8:

"=":赋值运算符
"==":比较运算符,比较值是否相等
"+=":加法赋值运算符,x += 1 等同于 x = x + 1
"%=:取模赋值运算符,x %= 5 等同于 x = x % 5

9:

break:结束当前层循环
continue:结束本次循环,进入下一次循环

10:

students[2]['hobbies'][1]

11:

li = s.spilt(".")

12:

name = name.replace("tom","rose",1)

13:

#第一种方法
s = 0
for i in range(0,101,2):
	s += i
print(s)

#第二种方法
print(sum(i for i in range(0,101,2)))

14:

一致

15:

#第一种方法
li = ['周','周星星','麻花藤','周扒皮','周黑鸭','码云']  #删除姓周的名后返回li列表
li2 = li.copy()
for i in li2:
	if i.startswith("周"):
    	li.remove(i)
print(li)

# 第二种方法
for i in range(len(li)-1,-1,-1):
 if li[i][0] == "周":
    li.pop(i)
print(li)

16:

year = input("请输入年份:").strip()
if year.isdigit():
    year=int(year)
    if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
        print("%s 年是闰年" % year)
    else:
        print("%s 年不是闰年" % year)
else:
    print("请输入数字")

17:

for key in dic.keys:
	print(key)

for value in dict.values:
	print(value)

for item in dict.items:
	print(item)

18:

# 1
if "eric" in li:
li.remove("eric")
print(li)

# 2
x = li.pop(1)
print(x)
print(li)

# 3
for index,val in enumerate(li,100):
    print(index,val)

19:

with open("a.txt",mode="rt",encoding="utf-8") as r_f1:
    r_data = r_f1.readlines()
    r_data.pop()
with open("a.txt",mode="wt",encoding="utf-8") as w_f1:
    for line in r_data:
        w_f1.write(line)

20:

import os
with open("a.txt",mode="rt",encoding="utf-8") as r_f1,open("a.txt.swap",mode="wt",encoding="utf-8") as w_f1:
    for line in r_f1:
        w_f1.write(line.replace("不要回答","绝对不能回复"))

os.remove("a.txt")
os.rename("a.txt.swap","a.txt")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值