Python之练习题
1、求出1 / 1 + 1 / 3 + 1 / 5……+1 / 99的和 (1分之一+3分之一+5分之一....)
方法一:
sum=0
for i in range(1,100,2):
sum = 1/i + sum
print(sum)
方法二:
sum=0
for i in range(1,100):
if i%2==1:
sum=sum+1/i
print(sum) #结果:2.937774848474907
方法三:
a=1
sum=0
while a<100:
sum+=1/a
a+=2
print(sum)
2、用循环语句,计算2 - 10之间整数的循环相乘的值 (2 * 3 * 4 * 5 ....10)
方法一:
i=2
a=1
while i<11:
a=a*i
i=i+1
print(a) #结果:3628800
方法二:
ji=1
for i in range(2,11):
ji=ji*i
print(ji) #结果:3628800
方法三:
a=1
b=1
while a<10:
a += 1
b *= a
print(b)
3、用for循环打印九九乘法表
\n 表示换行,相当于一个回车键
\t 表示4个空字符,类似文旦中的缩进功能,按tab
end=" " 不换行
f 是format的函数的缩写,用于格式化输出
方法一:
for i in range(1,10): # 遍历列
for k in range(1,i+1): # 遍历行
print(str(k)+'*'+str(i)+'='+str(i*k),end=' ')
print()
方法二:
for i in range(1,10):
for j in range(1,10):
if j<=i:
print('%d*%d=%d'%(i,j,i*j),end=' ')
print('\n')
方法三:
for i in range(1,10):
for j in range(1,i+1):
print(f"{i}*{j} ={i*j}",end=" ")
print()
方法四:
for i in range(1,10):
for j in range(1,i+1):
print('%d*%d=%d'%(i,j,i*j),end=' ' )
print()
4、求每个字符串中字符出现的个数如:helloworld
方法一:
str1='helloworld'
str2=''
for i in str1:
if i not in str2:
print('str1中有%d个%s'%(str1.count(i),i))
str2=str2+i
结果:str1中有1个h
str1中有1个e
str1中有3个l
str1中有2个o
str1中有1个w
str1中有1个r
str1中有1个d
方法二:
a='helloworld'
count={}
for i in a:
if i in count:
count[i]+=1
else:
count[i]=1
print(count)
结果:{'h': 1, 'e': 1, 'l': 3, 'o': 2, 'w': 1, 'r': 1, 'd': 1}
5、实现把字符串str = "duoceshi"中任意字母变为大写(通过输入语句来实现)
方法一:
str = "duoceshi"
s = input("请输入要变大小的字母:")
str1=str.replace(s,s.upper()) #replace替换;str.upper大写(str文件中字母大写)
print(str1)
方法二:
str = "duoceshi"
upper=input("输入要变为大写的字母:")
str1=""
for char in str:
if char==upper:
str1 +=char.upper()
else:
str1 +=char
print(str1)
6、分别打印100以内的所有偶数和奇数并存入不同的列表当中
方法一:
ji=[]
ou=[]
for i in range(1,101):
if i %2 ==0:
ou.append(i)
else:
ji.append(i)
print("奇数",ji)
print("偶数",ou)
方法二:
list1 = []
list2 = []
for i in range(100):
if i % 2 == 0:
list1.append(i)
else:
list2.append(i)
print("偶数列表:", list1)
print("奇数列表:", list2)
结果:
偶数列表: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]
奇数列表: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
方法三:
a=[]
b=[]
for c in range(1,101):
if c%2==0:
a.append(c)
else:
b.append(c)
print('奇数是:',b)
print('偶数是:',a)
7、请写一段Python代码实现删除重复元素list = [1, 3, 6, 9, 1, 8]#去重
方法一:
list = [1, 3, 6, 9, 1, 8]
s=set(list)
print(s) 结果:{1, 3, 6, 8, 9}
方法二:
list = [1, 3, 6, 9, 1, 8]
s=frozenset(list)
k=s.copy()
print(k) 结果:frozenset({1, 3, 6, 8, 9})
方法三:
list1 = [1, 3, 6, 9, 1, 8]
dict1={}
for i in list1:
if i in dict1:
dict1[i]=dict1[i]+1
else:
dict1[i]=1
print(list(dict1.keys()))
结果:
[1]
[1, 3]
[1, 3, 6]
[1, 3, 6, 9]
[1, 3, 6, 9, 8]
方法四:
list = [1, 3, 6, 9, 1, 8]
d={}
for i in list:
if i in d:
d[i]=d[i]+1
else:
d[i] = 1
print(d.keys()) 结果:dict_keys([1, 3, 6, 9, 8])
8、将字符串类似:"k:1|k3:2|k2:9" 处理成key:value或json格式,比如{"k": "1", "k3": "2"}
str3 = 'k:1|k3:2|k2:9'
.# 分割为列表
list_r = str3.split('|')
print(list_r) #['k:1', 'k3:2', 'k2:9']
newlist = []
.# 再次分割为二维列表
for i in list_r:
newlist.append(i.split('😂)
print(newlist) #[['k', '1'], ['k3', '2'], ['k2', '9']]
.# 将二维列表转为键值对字典
dc = dict(newlist)
print(dc) # {'k': '1', 'k3': '2', 'k2': '9'}
方法一:
str3 = 'k:1|k3:2|k2:9' #分割为列表
list_r = str3.split('|')
newlist = [] #再次分割为二维列表
for i in list_r:
newlist.append(i.split(':')) #将二维列表转为键值对字典
dc = dict(newlist)
print(dc) #结果:{'k': '1', 'k3': '2', 'k2': '9'}
方法二:
str1="k:1|k3:2|k2:9"
str2=str1.split("|")
dict1={}
for i in str2:
dict1[i.split(":")[0]] = i.split(":")[1]
print(dict1)
9、把字符串user_controller转换为驼峰命名UserController大驼峰在java用作变量命名
(前英文为大写后英文为小写) 小驼峰:作为变量命名
str4 = 'user_controller'
print(str4.title().replace('_',''))
print(str4.replace('_c','C'))
结果:
UserController
userController
方法二:
def zy9():
str = 'user_controller'
list = str.split('_')
str1=''
for i in list:
str1 += i.title()
print(str1)
zy9()
结果:UserController
10、给一组无规律的数据从大到小或从小到大进行排序如:list = [2, 6, 9, 10, 18, 15, 1]
升序:
list = [2, 6, 9, 10, 18, 15, 1]
list.sort()
print(list) 结果:[1, 2, 6, 9, 10, 15, 18]
升序:
list = [2, 6, 9, 10, 18, 15, 1]
list.sort(reverse=False)
print(list) 结果:[1, 2, 6, 9, 10, 15, 18]
降序:
list = [2, 6, 9, 10, 18, 15, 1]
list.sort(reverse=True)
print(list) 结果:[18, 15, 10, 9, 6, 2, 1]
11、分析以下数字的规律, 1 1 2 3 5 8 13 21 34用Python语言编程实现输出
.#分析题目:根据规律 1+1=2 2+1=3 2+3=5 3+5=8....
.#此为斐波那契数列 (考试题非常多次题目)
如:兔子的繁殖问题:如果一开始有一对兔子,它们每月生育一对兔子,小兔在出生后一个月又开始生育且繁殖情况与最初的那对兔子一样,那么一年后有多少对兔子?
答案是,每月兔子的总数可以用以下数列表示:1,1,2,3,5,8,13,21,34,55,89,144,233…
第一个月: 1 对小兔子
第二个月: 1 对小兔子
第三个月: 1 对大兔子 1 对小兔子(本月生)
第四个月: 1 对大兔子 1 对小兔子(本月生) 1对小兔子(上月生)
第五个月: 2 对大兔子 2 对小兔子(本月生) 1对小兔子(上月生)
第六个月: 3 对大兔子 3 对小兔子(本月生) 2对小兔子(上月生)
第七个月: 5 对大兔子 5 对小兔子(本月生) 3对小兔子(上月生)
方法一:
list=[1,1]
for i in range(10):
list.append(list[-1]+list[-2])
print(list) 结果:[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]
方法二:
12、如有两个list:a =['a','b','c','d','e']
b =[1,2,3,4,5] 将a中的元素作为key b中的元素作为value,将a,b合并为字典
方法一:
a =['a', 'b', 'c' , 'd', 'e']
b =[1, 2, 3, 4, 5]
c = dict(zip(a,b))
print(c)
结果:{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
方法二:
list_a =['a','b','c','d','e']
list_b =[1,2,3,4,5]
newdict = {}
for i in list_a:
newdict[i] = list_b[list_a.index(i)]
print(newdict)
13、有如下列表,统计列表中的字符串出现的次数
a = ['apple','banana','apple','tomao','orange','apple','banana','watermeton']
方法一:
list_s = ['apple','banana','apple','tomao','orange','apple','banana','watermeton']
list_set = set(list_s)
str1 = ''.join(list_s)
for i in list_set:
print(str(i)+' 出现:'+str(str1.count(i))+'次')
#结果:
watermeton 出现:1次
apple 出现:3次
banana 出现:2次
orange 出现:1次
tomao 出现:1次
方法二:
s = ['apple', 'banana', 'apple', 'tomao', 'orange', 'apple', 'banana', 'watermelon']
s1={}
for i in s:
if i not in s1:
s1[i]=1
else:
s1[i]+=1
print(s1)
结果:{'apple': 3, 'banana': 2, 'tomao': 1, 'orange': 1, 'watermelon': 1}
14、、列表推导式求出列表所有奇数并构造新列表 a =[1,2,3,4,5,6,7,8,9,10]
方法一:
list4=[1,2,3,4,5,6,7,8,9,10]
list5=[]
for i in list4:
if i%2==1:
list5.append(i)
print(list5)
结果:[1, 3, 5, 7, 9]
方法二:
list_n = [1,2,3,4,5,6,7,8,9,10]
newlist = []
for i in list_n:
if i%2 == 1:
newlist.append(i)
print(newlist)
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"
方法一:
url ="http://ip:port/extername/get_account_trade_record.json?page_size=20&page_index=1&user_id=203317&trade_type=0"
dict ={}
str1 =url.split("?")
str2 =str1[1]
str3 =str2.split("&")
for i in str3:
str4 =i.split("=")
dict[str4[0]] =str4[1]
print(dict)
print(dict.get("page_size"))
结果:
{'page_size': '20', 'page_index': '1', 'user_id': '203317', 'trade_type': '0'}
20
方法二:
url = 'http://ip:port/extername/get_account_trade_record.json?page_size=20&page_index=1&user_id=203317&trade_type=0'
# 截取?号后面的参数
split_d = url.split('?')[1]
# 以&符将参数分割为列表
split_l = split_d.split('&')
# 创建空字典
url_dict = {}
for i in split_l:
url_dict[i.split('=')[0]] = i.split('=')[1]
print(url_dict.get(i.split('=')[0]))