Python-复习-习题-13

时间:2022-01-12 05:49:21

复习

dict: dic = {'name':'alex'}
增:dic['age'] = 21 存在就覆盖
dic.setdefault() 存在什么也不做,没有就增加

删除:pop()按照key删除,有返回值
clear
del dic['name']
popitem()随机删除 返回的是元祖

改 update #覆盖添加


dic.keys()
dic.values()
dic.items()

for k,v in dic.items():
print(k,v)

dic.get(key,None) #没有值返回后面的参数none

习题


'''
3、元素分类
有如下值li= [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,90]
dic ={}
l_greater=[] #大于66的所有值列表
l_less=[] #小于66的所有值列表
for i in li:
if i == 66:continue
if i > 66 :
l_greater.append(i)
else :
l_less.append(i)
dic.setdefault('k1',l_greater)
dic.setdefault('k2',l_less)
print(dic)

# 输出:{'k1': [77, 88, 99, 90], 'k2': [11, 22, 33, 44, 55]} '''
4、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:1:页面显示 序号 + 商品名称,如:
1 手机
2 电脑

2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。 '''
flag = True
while flag:
li = ["手机", "电脑", "鼠标垫", "游艇"]
for i in li:
print('{}\t\t{}'.format(li.index(i)+1,i))
num_of_chioce = input('请输入选择的商品序号/输入Q或者q退出程序:')
if num_of_chioce.isdigit():
num_of_chioce = int(num_of_chioce)
if num_of_chioce > 0 and num_of_chioce <= len(li):
print(li[num_of_chioce-1])
else:print('请输入有效数字')
elif num_of_chioce.upper() == 'Q':break
else:print('请输入数字')

index()

  函数用于从列表中找出某个值第一个匹配项的索引位置。

语法

index()方法语法:

list.index(obj)

参数

  • obj -- 查找的对象。

返回值

该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。

实例

以下实例展示了 index()函数的使用方法:

#!/usr/bin/python3

list1 = ['Google', 'Runoob', 'Taobao']
print ('Runoob 索引值为', list1.index('Runoob'))
print ('Taobao 索引值为', list1.index('Taobao'))
以上实例输出结果如下: Runoob 索引值为 1
Taobao 索引值为 2

描述

index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。

语法

index()方法语法:

str.index(str, beg=0, end=len(string))

参数

  • str -- 指定检索的字符串
  • beg -- 开始索引,默认为0。
  • end -- 结束索引,默认为字符串的长度。

返回值

如果包含子字符串返回开始的索引值,否则抛出异常。

实例

以下实例展示了index()方法的实例:

#!/usr/bin/python3

str1 = "Runoob example....wow!!!"
str2 = "exam"; print (str1.index(str2))
print (str1.index(str2, 5))
print (str1.index(str2, 10))
以上实例输出结果如下(未发现的会出现异常信息): 7
7
Traceback (most recent call last):
File "test.py", line 8, in <module>
print (str1.index(str2, 10))
ValueError: substring not found

Python3 字符串格式化

字符串的格式化方法分为两种,分别为占位符(%)和format方式。占位符方式在Python2.x中用的比较广泛,随着Python3.x的使用越来越广,format方式使用的更加广泛。

一 占位符(%)

Python-复习-习题-13

%d

实例(Python3.0+):

age = 29
print("my age is %d" %age)
#my age is 29

%s

实例(Python3.0+):

name = "makes"
print("my name is %s" %name)
#my name is makes

%f

实例(Python3.0+):

print("%6.3f" % 2.3)
#2.300
print("%f" %2.3)
#2.300000

二 format方法

位置映射

Python-复习-习题-13

实例(Python3.0+):

print("{}:{}".format('192.168.0.100',8888))
#192.168.0.100:8888

关键字映射

Python-复习-习题-13

实例(Python3.0+):

print("{server}{1}:{0}".format(8888,'192.168.1.100',server='Web Server Info :'))
#Web Server Info :192.168.1.100:8888  

元素访问

Python-复习-习题-13

Python-复习-习题-13

实例(Python3.0+):

print("{0[0]}.{0[1]}".format(('baidu','com')))
#baidu.com 

填充对齐

  1. ^、<、>分别是居中、左对齐、右对齐

Python-复习-习题-13

实例1(Python3.0+):

print("{0}*{1}={2:0>2}".format(3,2,2*3))
#3*2=06 print("{:*^30}".format('centered'))
#***********centered*********** 

实例2(Python3.0+):九九乘法表

for i in range(1,10):
a = 1
while a <= i:
print("{0}*{1}={2:0>2}".format(a,i,a*i),end="\t")
a +=1
print() """
1*1=01
1*2=02 2*2=04
1*3=03 2*3=06 3*3=09
1*4=04 2*4=08 3*4=12 4*4=16
1*5=05 2*5=10 3*5=15 4*5=20 5*5=25
1*6=06 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=07 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=08 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=09 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
"""

精度设置

Python-复习-习题-13

实例(Python3.0+):

print("{:.3f}".format(2.1415))
#2.142
print("{:.10f}".format(3.1415))
#3.1415000000