开发基础 练习1总结

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('33[32;1m余额:33[0m', wages)
                shopping_car.append(goods[int(choice)])
                print("33[32;1m已将商品:%s 添加进购物车33[0m" % (goods[int(choice)]))
            else:
                print('33[31;1m余额不足33[0m')
        else:
            print('33[31;1m商品不存在!33[0m')
    elif choice == "q":
        print('-----您已购买以下商品-----')
        for index, k in enumerate(shopping_car):
            print(index, k)
        print('33[32;1m账户余额33[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('
'.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]从小到大排序(冒泡法)(编程)

           
  

   




原文地址:https://www.cnblogs.com/christmassa/p/9004098.html