1.简述编译型与解释型的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型
编译型:需要编译器,相当于先翻译再调出,执行快,调试慢,如c语言 解释型:需要解释器,相当于一边翻译一边调出,执行慢,调试快 如python
2.执行python脚本的两种方式(共有三种)
交互式解释器: 命令行窗口
命令行脚本:在你的应用程序中通过引入解释器可以在命令行中执行Python脚本,如下所示:
$ python script.py # Unix/Linux
或者
C:>python script.py # Windows/DOS注意:在执行脚本时,请检查脚本是否有可执行权限。
集成开发环境:pycharm
3.python单行注释和多行注释分别用什么?
单行注释用 '#'号
多行注释用 '''
4.布尔值分别有什么?
True 和 False
None,0,空(空字符串,空字典,空列表)的布尔值为False
其余都为True
5.声明变量注意事项有哪些?
不能以关键字为变量
不能以数字开头
区分大小写
命名时除了用下划线之外,别的符号不能用
1、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex', 'eric', 'rain']
该题目主要是考的字符串的拼接,join方法,
s = ""
li = ['alex', 'eric', 'rain']
s = "_".join(li)
2、查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"]
tu = ("alec", " aric", "Alex", "Tony", "rain")
dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
li = ["alec", " aric", "Alex", "Tony", "rain"]
for i in li:
i = i.strip()
if i.startswith("a") or i.startswith("A") and i.endswith("c"):
print(i)
3、写代码,有如下列表,按照要求实现每一个功能
li=['alex', 'eric', 'rain']
- 计算列表长度并输出
- 列表中追加元素“seven”,并输出添加后的列表
- 请在列表的第1个位置插入元素“Tony”,并输出添加后的列表
- 请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表
- 请删除列表中的元素“eric”,并输出修改后的列表
- 请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
- 请删除列表中的第3个元素,并输出删除元素后的列表
- 请删除列表中的第2至4个元素,并输出删除元素后的列表
- 请将列表所有的元素反转,并输出反转后的列表
- 请使用for、len、range输出列表的索引
- 请使用enumrate输出列表元素和序号(序号从100开始)
- 请使用for循环输出列表的所有元素
li=['alex', 'eric', 'rain'] # 计算列表长度并输出 print(len(li)) # 列表中追加元素“seven”,并输出添加后的列表 li.append("seven") print(li) # 请在列表的第1个位置插入元素“Tony”,并输出添加后的列表 li.insert(0, "Tony") print(li) # 请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表 li[1] = "Kelly" print(li) # 请删除列表中的元素“eric”,并输出修改后的列表 li.remove("eric") # 指定的是元素 print(li) # 请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表 li_pop = li.pop(1) # 指定的是下标位置 print(li_pop, li) # 请删除列表中的第3个元素,并输出删除元素后的列表 del li[2] # 指定的是下标位置 print(li) # 请删除列表中的第2至4个元素,并输出删除元素后的列表 # 请将列表所有的元素反转,并输出反转后的列表 # 请使用for、len、range输出列表的索引 for i in range(len(li)): print(i) # 请使用enumrate输出列表元素和序号(序号从100开始) for index, val in enumerate(li, 100): print(index) # 请使用for循环输出列表的所有元素 for i in li: print(i)
4、写代码,有如下列表,请按照功能要求实现每一个功能
li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
- 请根据索引输出“Kelly”
- 请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...
# 请根据索引输出“Kelly”
li[2][1][1]
# 请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...
li[2][2].upper()
li[2][2] = "ALL"
5、写代码,有如下元组,请按照功能要求实现每一个功能
tu=('alex', 'eric', 'rain')
- 计算元组长度并输出
- 获取元组的第2个元素,并输出
- 获取元组的第1-2个元素,并输出
- 请使用for输出元组的元素
- 请使用for、len、range输出元组的索引
- 请使用enumrate输出元祖元素和序号(序号从10开始)
# 计算元组长度并输出
print(len(t))
# 获取元组的第2个元素,并输出
print(t[1])
# 获取元组的第1-2个元素,并输出
print(t[1:2])
# 请使用for输出元组的元素
for i in t:
print(i)
# 请使用for、len、range输出元组的索引
for i in range(len(t)):
print(i)
请使用enumrate输出元祖元素和序号(序号从10开始)
for index, val in enumerate(t, 10):
print(index)
6、有如下变量,请实现要求的功能
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
- 讲述元祖的特性
- 请问tu变量中的第一个元素“alex”是否可被修改?
- 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
- 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
# 讲述元祖的特性
1、有序的集合
2、通过偏移来取数据
3、属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。
# 请问tu变量中的第一个元素“alex”是否可被修改? 上题中的元组的第三个特点 # 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven” type(tu[1][2]["k2"]) -- list 可以 tu[1][2]["k2"].append("Seven") # 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven” type(tu[1][2]["k3"]) tuple 不可以
7、字典
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
- 请循环输出所有的key
- 请循环输出所有的value
- 请循环输出所有的key和value
- 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
- 请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
- 请在k3对应的值中追加一个元素44,输出修改后的字典
- 请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
# 请循环输出所有的key
dic.keys()
# 请循环输出所有的value dic.values() # 请循环输出所有的key和value dic.items() # 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典 dic["k4"] = "v4" # 请在修改字典中“k1”对应的值为“alex”,输出修改后的字典 dic["k1"] = "alex" {'k2': 'v2', 'k1': 'alex', 'k3': [11, 22, 33]} # 请在k3对应的值中追加一个元素44,输出修改后的字典 dic["k3"].append(44) {'k2': 'v2', 'k1': 'v1', 'k3': [11, 22, 33, 44]} # 请在k3对应的值的第1个位置插入个元素18,输出修改后的字典 dic["k3"].insert(1, 18) {'k2': 'v2', 'k1': 'v1', 'k3': [11, 18, 22, 33]}
8、转换
- 将字符串s = "alex"转换成列表
- 将字符串s = "alex"转换成元祖
- 将列表li = ["alex", "seven"]转换成元组
- 将元祖tu = ('Alex', "seven")转换成列表
- 将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增
# 将字符串s = "alex"转换成列表
list(s)
# 将字符串s = "alex"转换成元祖
tuple(s) # 将列表li = ["alex", "seven"]转换成元组 tuple(li) # 将元祖tu = ('Alex', "seven")转换成列表 list(tu) # 将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增 dict(zip([i for i in range(10, len(li)+11)], li))
9、元素分类
有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。
即:{'k1':大于66的所有值, 'k2':小于66的所有值}
li = [11, 22, 33, 44, 55, 66, 77, 88, 99] dic = { "k1": [], "k2": [], } for i in li: if i >= 66: dic["k1"].append(i) else: dic["k2"].append(i) print(dic)
10、输出商品列表,用户输入序号,显示用户选中的商品
商品li = ["手机", "电脑", '鼠标垫', '游艇']
- 允许用户添加商品
- 用户输入序号显示内容
goods = [
{"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998} ] wages = int(input('请输入工资:')) shopping_car = [] exit_flag = False while not exit_flag: print('--------商品列表--------') for index, i in enumerate(goods): print(index, i) choice = (input('请输入要购买的商品:')) if choice.isdigit(): if 0 <= int(choice) < len(goods): if wages >= goods[int(choice)].get('price'): wages -= goods[int(choice)].get('price') print('\033[32;1m余额:\033[0m', wages) shopping_car.append(goods[int(choice)]) print("\033[32;1m已将商品:%s 添加进购物车\033[0m" % (goods[int(choice)])) else: print('\033[31;1m余额不足\033[0m') else: print('\033[31;1m商品不存在!\033[0m') elif choice == "q": print('-----您已购买以下商品-----') for index, k in enumerate(shopping_car): print(index, k) print('\033[32;1m账户余额\033[0m', wages) exit_flag = True elif choice == "a": print("----您当前处于商品添加页面----") print("当前存在的商品:") for index, i in enumerate(goods): print(index, i) name = input("商品名称:") price = input("商品价格:") dic = {"name": name, "price": price} goods.append(dic) print("添加成功:") for index, i in enumerate(goods): # enumerate(枚举)列表的索引值 print(index, i)
11、用户交互显示类似省市县N级联动的选择
- 允许用户增加内容
- 允许用户选择查看某一个级别内容
12、列举布尔值是False的所有值
13、有两个列表
l1 = [11,22,33]
l2 = [22,33,44]
- 获取内容相同的元素列表
- 获取l1中有,l2中没有的元素列表
- 获取l2中有,l3中没有的元素列表
- 获取l1和l2中内容都不同的元素
14、利用For循环和range输出
- For循环从大到小输出1 - 100
- For循环从小到到输出100 - 1
- While循环从大到小输出1 - 100
- While循环从小到到输出100 - 1
15、利用for循环和range输出9 * 9乘法表
print('\n'.join([ ' '.join([ "%d*%d=%2s" %(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
16、求100以内的素数和。(编程题)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 素数又称为质数,它指的是只能被1和它本身整除的整数。其中,1不是素数,任何时候都不用考虑1。
L = [] # 定义一个初始的素数列表 for n in range(2,101): # 循环100以内的素数n,从2开始,0、1不是素数 flag = True # 设置一个标志位,flag = True代表是素数,flag = Flase代表不是素数 for i in range(2,n): # 除以比它小的所有数(不包括1和它本身),看它是否还有其他因数 if n % i == 0: flag = False # 出现一次余数为0就代表可以除尽,即代表这个数为素数,就可以设置flag = False break # 只要第一次出现flag = False,就不用继续往下循环,直接退出整个循环(第二层) if flag == True: L.append(n) # 当flag = True时代表n为素数,追加到素数列表中 print("100以内的所有素数:",L) print(sum(L))
17、将[1,3,2,7,6,23,41,24,33,85,56]从小到大排序(冒泡法)(编程)