多测师肖sir_高级金牌讲师_python之作业006

(已做)1、求出1 / 1 + 1 / 3 + 1 / 5……+1 / 99的和 (1分之一+1分之三+1分支5…)
方法1:
sum = 0
for s in range(1,101,2):
sum += 1/s
print(sum)
在这里插入图片描述

方法2:
i=1
sum=0
while i<=99:
sum+=1/i
i+=2
print(sum)
在这里插入图片描述

方法3:
list1 = [1/x for x in range(1, 100, 2)]
print(sum(list1))
在这里插入图片描述

(已做)2、用循环语句,计算2 - 10之间整数的循环相乘的值 (2345…10)
方法1:

n=2
x=1
while n<=5:
x*=n #x=x*n
print(x)
n+=1
print(x)
在这里插入图片描述

方法2:
sum=1
for i in range(2,11):
sum*=i #sum=sum*i
# print(sum)
print(sum)
在这里插入图片描述

方法3:
a=1
b=1
while a<10:
a+=1 #a=a+1
b*=a #b=b*a
print(b)
在这里插入图片描述

方法4:

sum=2
for i in range(3,11):
    sum*=i #sum=sum*i
    print(sum)
print(sum)

在这里插入图片描述

方法4:

sum = 1
n = int(input("Please input number :"))
for i in range(1,n+1):
       sum*=i
print(sum )

在这里插入图片描述

(已做)3、用for循环打印九九乘法表
在这里插入图片描述

\t制表符
\n 换行符
end=’ ’ 不换行
\t :表示空4个字符,类似于文档中的缩进功能,相当于按一个Tab键。
\n :表示换行,相当于按一个 回车键
\n\t : 表示换行的同时空4个字符。

方法1:
for i in range(1,10):
for j in range(1,i+1):
print(‘%d*%d=%d’%(j,i,j*i),end=‘\t’)
print(‘’)
在这里插入图片描述

方法2:
for x in range(1, 10):
for y in range(1, x + 1):
print(f"{y} x {x} = {x * y}\t", end=“”)
print()
在这里插入图片描述

方法3:

for i in range(1, 10):
    for j in range(1, i + 1):
        print("{}x{}={}\t".format(j,i,i*j), end='')
    print()

在这里插入图片描述

方法4:
控制行数

#控制行数
for i in range(1,10):
    #控制数量
    for j in range(1,i+1):
        print(f'{i}x{j}={i*j}',end='\t')
    print( ```)
![在这里插入图片描述](https://img-blog.csdnimg.cn/deead903482840cfa42f3ebac4baad7a.png)
拓展:
案例1
for i in range(1, 10):
    for j in range(1, 11-i):
        print("%d*%d=%d\t"%(j,i,i*j), end='')
    print()
![在这里插入图片描述](https://img-blog.csdnimg.cn/90774d26f6684d68945ee291288e92b5.png)



(已做)4、求每个字符串中字符出现的个数如:helloworld
方法1:
s=‘hellworld’
#print(set(s)) #通过集合去重
for i in set(s):
print(i,s.count(i))
方法2:
a=‘helloworld’
c={} #字典中的键是不重复
for i in a :
c[i]=a.count(i)
print©

方法3:
str1 = ‘helloworld’
s = {}
for i in str1:
if i in s:
s[i] += 1
else:
s[i] = 1
print(s)
方法4:
s=‘helloworld’
print({i:s.count(i) for i in s})

(已做)5、实现把字符串str = "duoceshi"中任意字母变为大写(通过输入语句来实现)

方法1str=‘duoceshi’
a=input(‘输入任意字母’)
for i in a:
s=i.upper()
str=str.replace(a,s)
print(str)
![在这里插入图片描述](https://img-blog.csdnimg.cn/5c4d66af6b154ebaa6fa7e94ec849956.png)
方法2str = "duoceshi"
a=input('输入:')
if a in str:
    for i in a:
        j=i.upper()
        print(str.replace(a,j))
else:
    print('notfound!')
![在这里插入图片描述](https://img-blog.csdnimg.cn/4fbce864eb9d4b1692b8f052c3c27130.png)
方法3str = "duoceshi"
a=input("请输入想变大的字母:")
b=str.replace(a,a.upper())
print(b)
![在这里插入图片描述](https://img-blog.csdnimg.cn/8fdf0df617254a87a745b171d19007cd.png)
方法4:
i=input('请输入需要变成大写的字母:')
str1='duoceshi'
if  str(i) in list(str1):
    str2=str1.replace(i.lower(),i.upper())
    print(str2)
else:print('字符串中不存在此字母')
![在这里插入图片描述](https://img-blog.csdnimg.cn/b8551209f6ef4df5932d0cec3596265f.png)

方法5str = "duoceshi"
name=input("请输入变大字母:")
for i in list(str):
    if name==i:
        print(str.replace(i,str[str.index(i)].upper()),end="")



方法6:

```python
s='duoceshi'
a = input('请输入要变为大写的字母:')
if a not in s:
    print('请输入正确的字母:')
else:
    for i in a:
         a2=i.upper()
         s2=s.replace(a,a2)
         print(s2)

方法6str = "duoceshi"
a = input("请输入字母:")
while a in str:
    str = str[:str.find(a)] + a.upper() + str[str.find(a) + 1:]
print(str)

在这里插入图片描述

6、分别打印100以内的所有偶数和奇数并存入不同的列表当中
方法1:

list2 = [x for x in range(1, 101, 2)]
list3 = [y for y in range(2, 101, 2)]
print(list2)
print(list3)

在这里插入图片描述

方法2:

a=list(range(1,100,2))
b=list(range(0,100,2))
print(a)
print(b)

在这里插入图片描述

方法3:

a=[]
b=[]
for i in range(1,101,2):
    a.append(i)
for j in range(2,101,2):
    b.append(j)
print(a)

在这里插入图片描述

方法4:


listq=[]
listo=[]
for x in range(1,101):
    if x%2==0:
        listo.append(x)
    else:
        listq.append(x)
print("奇数的集合为:",listq)
print("偶数的集合为:",listo)

在这里插入图片描述
方法5:


list1 = []
list2 = []
a = 1
while a < 101:
    if a % 2 == 0:
        list1.append(a)
    else:
        list2.append(a)
    a += 1
print(list1)
print(list2)

在这里插入图片描述

7、请写一段Python代码实现删除一个list = [1, 3, 6, 9, 1, 8]# 里面的重复元素(用多种方法)
方法1:
list = [1, 3, 6, 9, 1, 8]
s=[]
for i in list:
if i not in s:
s.append(i)
print(s)
在这里插入图片描述

方法2 : 利用字典的唯一性去重
list1= [1, 3, 6, 9, 1, 8]
print(list(dict.fromkeys(list1).keys()))
备注:fromkeys()方法是用于创建一个新字典,
lis = [1, 3, 6, 9, 1, 8]
dict={}
b=dict.fromkeys(lis)
a=b.keys()
print(list(a))
在这里插入图片描述

方法3:利用set集合去重
list1= [1, 3, 6, 9, 1, 8]
k=set(list1)
print(k)
在这里插入图片描述

方法4:利用count方法统计并删除

lis = [1, 3, 6, 9, 1, 8]
for i  in lis:
    if  lis.count(i)>1:
         lis.remove(i)
print(lis) #[3, 6, 9, 1, 8]

在这里插入图片描述

方法5:

list1 = [1, 3, 6, 9, 1, 8]
list2 = []
for i in list1:
    if list2.__contains__(i):
        continue
    else:
        list2.append(i)
print(list2)

在这里插入图片描述

8、将字符串类似:“k:1|k3:2|k2:9” 处理成key:value或json格式,比如{“k”: “1”, “k3”: “2”}
方法1:

str1="k:1|k1:2|k2:3|k3:4"
list1=str1.split("|")
print(list1) #['k:1', 'k1:2', 'k2:3', 'k3:4']
d=dict()
for  i  in list1:
    c=i.split(':')
    print(c)
    d[c[0]]=c[1]
print(d) #{'k': '1', 'k1': '2', 'k2': '3', 'k3': '4'}

在这里插入图片描述

方法2:zd={}
for i in a:
i=i.split(‘:’)
zd.setdefault(i[0],i[1])
print(zd)

在这里插入图片描述

方法3:

str="k:1|k3:2|k2:9"
list1=str.split("|")
dict1={}
for k in list1:
    key,value=k.split(":")
    dict1[key]=value
print(dict1)

在这里插入图片描述

方法4:

str1="k:1|k1:2|k2:3|k3:4"
list1=str1.split("|")
print(list1) #['k:1', 'k1:2', 'k2:3', 'k3:4']
d=dict()
for i in list1:
    key=i.split(":")[0]#
    value=eval(i.split(":")[1])
    d[key]=value
print(d)

在这里插入图片描述

9、把字符串user_controller转换为驼峰命名UserController大驼峰在java用作变量命名(前英文为大写后英文为小写)
小驼峰:作为变量命名
方法1:

a='user_controller'
s,y=a.split("_")
b=a.split('_')
print(b) #['user', 'controller']
print(b[0].title()+b[1].title())  #UserController

在这里插入图片描述

方法2:

a='user_controller'
s,y=a.split("_")
b=a.split('_')
print(b) #['user', 'controller']
print(b[0].capitalize()+b[1].capitalize())  #UserController

在这里插入图片描述
方法3:

str1='user_controller'
s=str1.split('_')
m=""
for i in s:
    x=i.capitalize()
    m+=x
print(m)

在这里插入图片描述
方法4:

str='user_controller'
str1=str.title().split('_')
print(''.join(str1))

10、给一组无规律的数据从大到小或从小到大进行排序如:list = [2, 6, 9, 10, 18, 15, 1]
方法1: sort 升序
list = [2, 6, 9,10, 18, 15, 1]
list.sort()
print(list)
在这里插入图片描述

方法2:

list = [2, 6, 9, 10, 18, 15, 1]
print("list列表的升序为",sorted(list,reverse=False))
print("list列表的降序为",sorted(list,reverse=True))


![在这里插入图片描述](https://img-blog.csdnimg.cn/363caad10efd4594af3f240802e20347.png)


方法3list = [2, 6, 9,10, 18, 15, 1]
for i in range(0,len(list)-1):
for j in range(0,len(list)-1):
if list[j]>list[j+1]:
list[j],list[j+1]=list[j+1],list[j]
print(list)

![在这里插入图片描述](https://img-blog.csdnimg.cn/4bfd5e012f6b40ea93da19b4cc11a0c3.png)

方法4;
冒泡排序

冒泡排序(Bubble Sort)也是一种简单直观的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,
如果他们的顺序错误就把他们交换过来。
走访数列的工作是重复地进行直到没有再需要交换,
也就是说该数列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
def bubbleSort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
 Last i elements are already in place
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
arr = [64, 34, 25, 12, 22, 11, 90]
bubbleSort(arr)
print(“排序后的数组:)
for i in range(len(arr)):
print(%d” % arr[i])

11、分析以下数字的规律, 1 1 2 3 5 8 13 21 34用Python语言编程实现输出 (斐波那契数列,兔子)
案例1list=[1,1]
for i in range(10):
list.append(list[-1]+list[-2])
#print(list)
print(list)
![在这里插入图片描述](https://img-blog.csdnimg.cn/160995f6080e4428a08374177c9207db.png)


案例2:
a=[]
for i in range(10):
if i0 or i1 :
a.append(1)
else:
a.append(a[i-1]+a[i-2])
print(a)

#分析题目:根据规律 1+1=2 2+1=3 2+3=5 3+5=8…
#此为斐波那契数列 (考试题非常多次题目)


方法3:
a=0
b=1
for i in range(10):
    sum=a+b
    a=b
    b=sum
    print (a,end=",")


a=0
b=1
for i in range(10):
    sum=a+b  #每次计算当前的和sum  =1
    a=b  #将a的值更新为b
    b=sum  #将b的值更新sum
    print (a,end=" ")
![在这里插入图片描述](https://img-blog.csdnimg.cn/e3be513d7c404d52920cb4188617273c.png)


方法四:

```python
a, b = 1, 1
print(a,end= ",")
print(b,end=",")
for _ in range(10):    # 输出 7 个数字,已经打印了前两个数字
   a, b = b, a + b    # 更新 a 和 b 的值
   #交换两个变量的值,执行中,变量a将变为原来变量b的值,而变量b将变为原来变量a+b的值
   print(b,end=" ,")

在这里插入图片描述
方法五:
def a(n):
if (n == 1) or (n == 2):
return 1
return a(n - 1) + a(n - 2)
print(a(3))
在这里插入图片描述

12、如有两个list:a =[‘a’,‘b’,‘c’,‘d’,‘e’]
b =[1,2,3,4,5] 将a中的元素作为key b中的元素作为value,将a,b合并为字典
方法1:使用了zip函数
list:a =[‘a’,‘b’,‘c’,‘d’,‘e’]
b =[1,2,3,4,5]
print(dict(zip(list,list2))) #{2: ‘a’, 6: ‘b’, 9: ‘c’}
在这里插入图片描述
方法2:
a=[‘a’,‘b’,‘c’,‘d’,‘e’]
b=[1,2,3,4,5]
dict1={}
for i in a:
for j in b:
if a.index(i)==b.index(j):
dict1.setdefault(i,j)
print(dict1)
在这里插**加粗样式**入图片描述

13、有如下列表,统计列表中的字符串出现的次数
a = [‘apple’,‘banana’,‘apple’,‘tomao’,‘orange’,‘apple’,‘banana’,‘watermeton’]
方法1:
s={}
for i in a:
s[i]=a.count(i)
print(s)
(2)
list1=[‘apple’,‘banana’,‘apple’,‘tomao’,‘orange’,‘apple’,‘banana’,‘watermeton’]
a = { i:list1.count(i) for i in list1 }
print(a)
在这里插入图片描述

方法2:
a = [‘apple’,‘banana’,'a
for i in set(a):
count=a.count(i)
print(i,count)

方法3:
a = [‘apple’,‘banana’,‘apple’,‘tomao’,‘orange’,‘apple’,‘banana’,‘watermeton’]
print({i:a.count(i) for i in a})
方法4:
a = [‘apple’,‘banana’,‘apple’,‘tomao’,‘orange’,‘apple’,‘banana’,‘watermeton’]
s={}
for i in a:
if i in s:
s[i]+=1
else:
s[i]=1
print(s)
方法5:
from collections import Counter
a= [‘apple’,‘banana’,‘apple’,‘tomao’,‘orange’,‘apple’,‘banana’,‘watermeton’]
count=Counter(a)
print(count)
在这里插入图片描述
方法6:
a = [‘apple’,‘banana’,‘apple’,‘tomao’,‘orange’,‘apple’,‘banana’,‘watermeton’]
b=set(a)
i=" "
for i in b:
print(i+“\t”+str(a.count(i)))
在这里插入图片描述

14、、列表推导式求出列表所有奇数并构造新列表 a =[1,2,3,4,5,6,7,8,9,10]
方法1:
list14=[1,2,3,4,5,6,7,8,9,10]
list15=[]
for i in list14:
if i%2==1:
list15.append(i)
print(list15)
在这里插入图片描述

(2)
a =[1,2,3,4,5,6,7,8,9,10]
b=[]
for x in a:
if x/2%1:
b.append(x)
print(b)
在这里插入图片描述

方法2:
f =[1,2,3,4,5,6,7,8,9,10]
print([i for i in f if i%2 != 0])
#[1, 3, 5, 7, 9]
在这里插入图片描述

15、有如下url地址, 要求实现截取出"?“号后面的参数, 并将参数以"key value"的键值形式保存起来, 并最终通过#get(key)的方式取出对应的value值。
#url地址如下:http://ip:port/extername/get_account_trade_record.json?page_size=20&page_index=1&user_id=203317&trade_type=0”

方法一:
a1=a.split(‘?’) #split分隔?返回列表,索引是0,1
print(a1)
a2=a1[1].split(‘&’) #根据列表中索引1,split分隔’&’
print(a2) #[‘\npage_size=20’, ‘page_index=1’, ‘user_id=203317’, ‘trade_type=0"
d={}
for i in a2:
k,v=i.split(’=‘)
d[k]=v
print(d.get(‘user_id’))
(2)
str1 = ‘http://ip:port/extername/get_account_trade_record.json?page_size=20&page_index=1&user_id=203317&trade_type=0’
str2 = str1.split(’?‘)
str3 = str2[1].split(’&‘)
dict1 = {}
for i in str3:
dict1.setdefault(i.split(’=‘)[0], i.split(’=')[1])
print(dict1)

在这里插入图片描述

2、
url = “http://ip:port/extername/get_account_trade_record.json?page_size=20&page_index=1&user_id=203317&trade_type=0”
a = url.find(‘?’)
str2 = url[a + 1:]
list2 = str2.split(‘&’)
dict1 = {}
for kv in list2:
kv = kv.split(‘=’)
key = kv[0]
value = kv[1]
dict1[key] = value
print(dict1)
list3 = dict1.get(‘page_size’, ‘’)
list4 = dict1.get(‘page_index’, ‘’)
list5 = dict1.get(‘user_id’, ‘’)
list6 = dict1.get(‘trade_type’, ‘’)
print(‘page_size’ + list3)
print(‘page_index’ + list4)
print(‘user_id’ + list5)
print(‘trade_type’ + list6)
在这里插入图片描述
案例:
from urllib.parse import parse_qs, urlparse
url = “http://ip:port/extername/get_account_trade_record.json?page_size=20&page_index=1&user_id=203317&trade_type=0”
parsed_url = urlparse(url)
params = parse_qs(parsed_url.query)
params_dict = {key: values[0] for key, values in params.items()}
print(params_dict)

在这里插入图片描述
方法4:
def dict0():
urla=“http://ip:port/extername/get_account_trade_record.json?page_size=20&page_index=1&user_id=203317&trade_type=0”
a=urla.split(“?”)[1]
dict1={}
list1=a.split(“&”)
for x in list1:
k=x.split(“=”)
dict1.setdefault(k[0],k[1])
return(dict1)
dict0()
def g(a):
dict2=dict0()
print(dict2.get(a))
g(‘page_size’)

在这里插入图片描述
方法5:
url = “http://ip:port/extername/get_account_trade_record.json?page_size=20&page_index=1&user_id=203317&trade_type=0”
a=url.find(‘?’)
list1=(url[a+1:].split(‘&’))
c=input(‘输入要取值的key:’)

print(list1)

dict1={}
for i in list1:
q,w=i.split(‘=’)
dict1[q]=w
print(dict1.get©)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金牌j软件测试培训师肖sir

作为一个名资深IT搬运工

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值