python习题练习

day03 作业

  1. 实现IP地址转换。

    10.3.9.12 转换规则为:
            10            00001010
             3            00000011
             9            00001001
            12            00001100
    再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 =########### 答案 ##############
    string = '10.3.9.12'
    

ipList = string.split(".")
stringStart = ‘’
for i in ipList:
intToBin = bin(int(i)) # 将字符串转换为十进制,再将十进制转换为二进制
binRemove0b = (intToBin[2:]).rjust(8,‘0’) #
stringStart = stringStart + binRemove0b;
print(stringStart)

print("-------------")
stingToInt = int(stringStart)
print(stingToInt)

n = -1
k = 0
ii = 0
len = len(stringStart)
while len > 0:
ii = (int(stringStart[n]) * pow(2, k)) + ii
print("-------",ii)
k = k + 1
len = len - 1
n = n - 1
print(k, “–”,ii)
######### 简便的做法 #########

2. Python2中的xrange和range的区别?
可参考:https://www.cnblogs.com/molson/p/6613094.html
相同点:
1、两者都是函数,都可生成一个数字序列;
2、生成的数字序列都是左闭右开,且都支持切片操作
不同点:
1、range()函数生成的序列是字符串类型的,而xrange() 函数生成的序列是xrange类型的
2、range()函数直接生成一个列表,xrange() 函数生成一个生成器,可以使用list(xrange())将这个生成器转换成为list类型的
3、要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间
###############################
python2中xrange是生成器,生成一个取出一个,节省内存
       range是一次性生成,对内存消耗较大


3. 如何实现 `"1,2,3"` 变成 `["1","2","3"]` ?
```python
string = "1,2,3"
string = string.replace(",","")
print(list(string))
  1. 如何实现 "1,2,3" 变成 [1,2,3] ?
  string = "1,2,3"
  string = string.replace(",", "")
  len = len(string)
  list1 = []
  i = 0
  while i < 3:
    strToInt = int(string[i])
    list1.append(strToInt)
    i = i + 1
  print(list1)
  1. 请用三种方法实现字符串反转 name = “晓强半夜三点在被窝玩愤怒的小鸟”(步长、while、for)
# 第一种:
  name = "晓强半夜三点在被窝玩愤怒的小鸟"
  print(name[::-1])
# 第二种:
  length = len(name) - 1
  nameList = []
  while length >= 0:
      nameList.append(name[length])
      length = length - 1
  result = ''.join(nameList)              # Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
  print(result)

# 第三种
  naList = []
  namList = []
  length = len(name)
  for i in name:
      naList.append(i)
  print(naList)
  while length - 1 >= 0:
      namList.append(naList.pop(length - 1))
      length = length - 1
  naResult = ''.join(namList)
  print("----",naResult)


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

    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    
    - 列表中追加元素"seven",并输出添加后的列表
    - 请在列表的第1个位置插入元素"Tony",并输出添加后的列表
    - 请将列表 l2=[1,"a",3,4,"heart"] 的每一个元素追加到列表li中,并输出添加后的列表
    - 请删除列表中的元素"ritian",并输出删除后的列表
    - 请删除列表中的第2个元素,并输出删除元素后的列表
    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    l2=[1,"a",3,4,"heart"]
    

1

li.append("seven")
print(li)

2

li.insert(0,'Tony')
print(li)

3

li.extend(l2)
print(li)

4

# del li[2]         # 删除
li.remove('ritian')
print(li)

5

li.pop(2)



7. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如:

```python
0 武沛齐
1 景女神
2 肖大侠
users = ["武沛齐","景女神","肖大侠"]
for value in users:
print(users.index(value),' ',value)
  1. 写代码,有如下列表,按照要求实现每一个功能。

    - 将列表lis中的"k"变成大写,并打印列表。
    - 将列表中的数字3变成字符串"100"
    - 将列表中的字符串"tt"变成数字 101
    -"qwe"前面插入字符串:"火车头"
     lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
     lis[2] = lis[2].upper()
     print(lis)
     lis[3][2][1] = 100
     print(lis)
     lis[3][2][0] = 101
     print(lis)
     lis[3].insert(0,'火车头')                      # 划重点
     print(lis)
    
  2. 写代码实现以下功能

    如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品:
        1,汽车
        2,飞机
        3,火箭
    用户输入索引后,将指定商品的内容拼接打印,如:用户输入1,则打印 您选择的商品是汽车。
    googs = ['汽车','飞机','火箭']
    inPut = input('请输入商品编号:')
    for value1 in googs:
        if googs.index(value1) + 1 == int(inPut):
          print(value1)
    
    
  3. 查找列表li中的元素,移除每个元素的空格,并找出以"a"开头的元素,并添加到一个新列表中,最后循环打印这个新列表。

    li = ["wupeiqi ", "alexC", "AbC ", "seven", " riTiAn", "WuSir", "  aqc"]
    li3 = []
    li2 = []
    for value2 in li:                       # 先后顺序很重要
    li3.append(li[li.index(value2)].strip())
    if li3[li.index(value2)].strip().startswith('a'):
        li2.append(li3[li.index(value2)].strip())
    li[li.index(value2)] = li[li.index(value2)].strip()
    print(li2)
    print(li)
    
  4. 判断是否可以实现,如果可以请写代码实现。

    li = ["alex",[11,22,(88,99,100,),33] "WuSir", ("alex", "barry",), "eric"]
    - 请将 "WuSir" 修改成 "武沛齐"
    - 请将 ("alex", "barry",) 修改为 ['日天','日地']
    - 请将 88 修改为 87
    - 请将 "eric" 删除,然后再在列表第0个索引位置插入 "李杰"
    li[2] = "武沛齐"
    print(li)
    ##################
    list2 = list(li[3])          # 元组不能修改长度与元素
    print(list2)
    list2[0] = '小天'
    list2[1] = '小地'
    li[3] = tuple(list2)
    print(li)
    ##################
    
    list3 = list(li[1][2])
    list3[0] = 89
    li[1][2] = tuple(list3)
    print(list3,'------',li)
    li.pop()
    li.insert(0,'理解')               # 列表的插入不用赋值
    print(li)
    
  5. 请将列表中的每个元素通过 “_” 链接起来。

    users = ['李少奇','李启航','渣渣辉'
    print('_'.join(users))
    
  6. 请将元组 v1 = (11,22,33) 中的所有元素追加到列表 v2 = [44,55,66] 中。

v1 = (11,22,33)
v2 = [44,55,66]
list4 = list(v1)
v2.extend(list4)
print(v2)
  1. 请将元组 v1 = (11,22,33,44,55,66,77,88,99) 中的所有偶数索引位置的元素 追加到列表 v2 = [44,55,66] 中。
v1 = (11,22,33,44,55,66,77,88,99)
v2 = [44,55,66]
list5 = list(v1)
for value3 in list5:
    if list5.index(value3)%2 == 0:
        v2.append(value3)
print(v2)
  1. 有字符串"k1:1|k2:2 |k3 :2" 处理成如下结构的数据。
  [
      ("k1","1"),
      ("k2","2"),
      ("k3","3"),
  ]
  string = "k1:1|k2:2 |k3 :2"
  list1 = string.split('|')
  list3 = []
  print(list1)
  for value in list1:
      list2 = list1[list1.index(value)].split(":")
      list3.append(tuple(list2))
  print(list3)
  ```

13. 输出商品列表,用户输入序号,显示用户选中的商品

  ```python
  商品列表:
    goods = [
  		["电脑",1999],
  		["鼠标",10],
  		["游艇",20],
  		["美女",990],
  	]
  要求:
  1:页面显示 序号 + 商品名称 + 商品价格,如:
        1 电脑 1999 
        2 鼠标 10
  	  ...
  2:用户输入选择的商品序号,然后打印商品名称及商品价格
  3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
  4:用户输入Q或者q,退出程序。
  
  inpIndex = []
  for value5 in goods:
      print(goods.index(value5)+1,' ',goods[goods.index(value5)][0],' ', goods[goods.index(value5)][1])
      inpIndex.append(goods.index(value5)+1)
  while 1:
      inpValue = input("请输入商品编号:")
      if inpValue.lower() == 'q':
          break
      elif inpValue.isdecimal():
          if int(inpValue) in inpIndex:
              for value6 in goods:
                  if goods.index(value6) + 1 ==  int(inpValue):
                      print(goods[goods.index(value6)][0],' ',goods[goods.index(value6)][1])
          else:
              pass
      else:
          print("输入有误!")
  ```

14. 比较 `v1 = (1,)` 和 `v2 = 1` 以及 `v3= (1)` 的区别?
v1是元组
v2是一个变量,值为1
v3是一个变量,值为1

15. 列举你了解的转换为布尔值为False的所有值。
0''[](){}None

16. 实现用户登录程序
```python
  - 循环提示用户录入用户名和密码,输入Q或q终止。
  - 用户名和密码校验(三次错误机会)。
  userNm = 'huahua'
  password = '123123'
  count = 1
  while count <= 3:
      inpName = input('请输入用户名:')
      if inpName.lower() == 'q':
          break
      inpPassword = input("请输入密码:")
      if inpName == userNm and inpPassword == password:
          print('登录成功!')
          break
      else:
          count += 1
          if count == 4:
              print("今日登录次数已达上限,明天再来试试吧~")
          else:
              print("用户名或者密码有误,请重新输入!")
  1. 基于for和range实现 9*9 乘法表.

    1*1
    2*1 2*2
    3*1 3*2 3*3
    4*1 4*2 4*3 4*4
    5*1 5*2 5*3 5*4 5*5
    6*1 6*2 6*3 6*4 6*5 6*6
    7*1 7*2 7*3 7*4 7*5 7*6 7*7
    8*1 8*2 8*3 8*4 8*5 8*6 8*7 8*8
    9*1 9*2 9*3 9*4 9*5 9*6 9*7 9*8 9*9
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python 练习题是指设计用来提高编程技能和加深对Python语言理解的编程问题。这些练习题通常涉及不同的Python编程概念和技巧,从基础语法到高级主题都有涵盖。以下是一些常见的Python练习题类型: 1. 基础语法练习:这些练习帮助初学者熟悉Python的基本语法,比如变量声明、数据类型、控制结构(if-else语句、循环)以及函数定义等。 2. 数据结构操作:涉及Python内置的数据结构,如列表(list)、字典(dict)、元组(tuple)和集合(set)的操作练习,包括增删改查等。 3. 面向对象编程:包含类和对象的定义、继承、多态和封装等面向对象编程概念的实践题目。 4. 错误和异常处理:学习如何处理在代码执行过程中可能遇到的错误和异常。 5. 文件操作:练习如何在Python中读写文件,包括文本文件和二进制文件的操作。 6. 模块和包:学习如何导入和使用Python标准库中的模块,以及如何创建和使用自定义包。 7. 高级特性:练习Python的高级特性,比如列表推导式、生成器、装饰器和上下文管理器等。 8. 数据处理:包含使用Python进行数据分析和处理的练习,如使用Pandas库操作数据框(DataFrame)。 9. Web开发基础:涉及使用Flask或Django等框架进行简单的Web应用开发。 10. 测试:编写单元测试来验证代码的正确性。 通过解决这些问题,可以系统地提升Python编程技能,并在实际开发中更加得心应手。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值