python代码笔记03

1.求列表元素和

num = sum(range(0,10))
print(num)

45

2.输出奇数索引元素

num = [2,5,8,1,5,8,9,3,6]
print(num[1::2])

[5, 1, 8, 3]

3.输出列表中奇数

 num = [1,3,7,9,2,5,8,3,7,8,3,6,9,5]
 for i in num:
     if i%2==1:
         print(i,end=',')

1,3,7,9,5,3,7,3,9,5,

4.将元素*2

 print([i*2 for i in range(1,11)])

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

5.键盘输入5个数判断是否是回文

 num = list(input("请输入数"))
 nums = list(reversed(num))
 print(nums)
 print(num)
 for i in num:
     for j in nums:
         if i==j:
             tag = 0
         else:
             tag =1
 if tag:
     print("不是回文")
 else:
     print("是回文")

请输入数12345
[‘5’, ‘4’, ‘3’, ‘2’, ‘1’]
[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
不是回文

[‘1’, ‘2’, ‘3’, ‘2’, ‘1’]
[‘1’, ‘2’, ‘3’, ‘2’, ‘1’]
是回文

6、生成一个包含个整数的随机列表,对偶数索引进行降序排列,奇数索引的元素不变

 lst=random.choices(range(1,100),k=20)
 print("随机生成20个1~100的数字:\n",lst)
 list_one=lst[: : 2]
 list_tow=sorted(list_one,reverse=True)
 print(f"列表中偶数索引元素为{list_one}偶数降序排列为{list_tow}")

随机生成20个1~100的数字:
[34, 12, 64, 72, 51, 23, 43, 88, 71, 81, 38, 34, 70, 97, 47, 77, 93, 15, 95, 6]
列表中偶数索引元素为[34, 64, 51, 43, 71, 38, 70, 47, 93, 95]偶数降序排列为[95, 93, 71, 70, 64, 51, 47, 43, 38, 34]

7、nums=[2,7,11,15,1,8],找到列表中任意相加等于9的元素集合如[(0,9),(4,5)]

 nums=[2,7,11,15,1,8]
 lst=[(i,j)for i in nums for j in nums if i+j==9]
 print("找到的组合为",lst)

找到的组合为 [(2, 7), (7, 2), (1, 8), (8, 1)]

序列编程题
1、编写程序,将用户输入的数字转换成相应的中文大写数字。例如,1.23转换为壹点贰叁。

 def f(num):
     chinese = {0: '零',1: '壹',2: '贰',3: '叁',4: '肆',5: '伍',6: '陆',7: '柒',8: '捌',9: '玖' }
     num_str = str(num)
     int_chinese = ''
     for i in num_str if '.' not in num_str else num_str.split('.')[0]:
         int_chinese += chinese[int(i)]
     decimal_chinese = ''
     if '.' in num_str:
         for i in num_str.split('.')[1]:
             decimal_chinese += chinese[int(i)]
     return '{}点{}'.format(int_chinese, decimal_chinese) if decimal_chinese else int_chinese
 input_num = float(input("请输入一个数字:"))
 print(f(input_num))

请输入一个数字:100.918
壹零零点玖壹捌

2、编写程序,随机生成5个0~10之间不相等的数。

 num_list = []
 num = random.randint(0, 10)
 num_list.append(num)
 while len(num_list) < 5:
     num = random.randint(0, 10)
     for i in num_list:
         if i == num:
             tag = 1
         else:
             tag = 0
     if tag == 0:
         num_list.append(num)
 print(num_list)

[10, 6, 2, 9, 1]

3、随机生成6位的验证码,验证码是小写字母、大写字母、数字三种类型中的一种。【数字09;小写字母az的ASCII是9797+25;大写字母AZ的ASCII是65~65+25】

 num = [i for i in range(48,58)]
 s_str = [i for i in range(97, 97 + 26)]
 m_str = [i for i in range(65, 65 + 26)]
 list = []
 list.extend(num)
 list.extend(s_str)
 list.extend(m_str)
 for i in range(0, 6):
     check = random.choices(list)
      print(check,end='')
     print(chr(check[0]),end='')

b1AQtc

4、创建一个20以内奇数列表,计算列表中所有数的和。Sum(Range(1,20,2))

 sum = sum(range(1,20,2))
 print(sum)

100

5、输入一个字符串和一个字符,计算字符在字符串的出现的次数。 Count()

 str = input("请输入一字符串:")
 for i in str:
     print(i, ':', str.count(i))

请输入一字符串:sdxsaxs
s : 3
d : 1
x : 2
s : 3
a : 1
x : 2
s : 3

6、将下面表格中的数据按成绩从高到低进行排序,输出排序结果。输出结果如下图所示。
姓名 成绩
吴忱 76
杨九莲 99
安芸芸 84
刘洋 70
兰成 89

 data = [
     {"姓名": "吴忱", "成绩": 76},
     {"姓名": "杨九莲", "成绩": 99},
     {"姓名": "安芸芸", "成绩": 84},
     {"姓名": "刘洋", "成绩": 70},
     {"姓名": "兰成", "成绩": 89}
 ]
 sorted_data = sorted(data, key=lambda item: item['成绩'], reverse=True)
 print("排名\t姓名\t成绩")
 for index, item in enumerate(sorted_data, start=1):
     print(f"{index}\t{item['姓名']}\t{item['成绩']}")

排名 姓名 成绩
1 杨九莲 99
2 兰成 89
3 安芸芸 84
4 吴忱 76

7、随机生成1000个由0、1组成的字符串,统计0、1的个数。

nums=random.choices(range(2),k=1000)
for i in nums:
 if i==0:
     lst1=nums.count(i)
for j in nums:
 if j==1:
     lst2=nums.count(j)
print(f"0字符在字符串中一共出现了{lst1}次")
print(f"1字符在字符串中一共出现了{lst2}次")

0字符在字符串中一共出现了479次
1字符在字符串中一共出现了521次

8、输入5个数,将其分别按从小到大,从大到小的顺序输出。
接收用户输入的5个数

numbers = []
for i in range(5):
 num = float(input(f"请输入第{i + 1}个数: "))
 numbers.append(num)
# 按从小到大排序
sorted_asc = sorted(numbers)
print("从小到大排序:", sorted_asc)
# 按从大到小排序
sorted_desc = sorted(numbers, reverse=True)
print("从大到小排序:", sorted_desc)

请输入第1个数: 110.23
请输入第2个数: 23.89
请输入第3个数: 349.678
请输入第4个数: 23.101
请输入第5个数: 1999.99
从小到大排序: [23.101, 23.89, 110.23, 349.678, 1999.99]
从大到小排序: [1999.99, 349.678, 110.23, 23.89, 23.101]

9、有两个集合,集合A为{1,2,3,4,5},集合B为{4,5,6,7,8},计算这两个集合的并集|、交集&、差集-和对称差集^。从键盘输入一个数据,判断其是否在集合A或集合B中。

A={1,2,3,4,5}
B={4,5,6,7,8}
print("集合A:{1,2,3,4,5}\n集合B:{4,5,6,7,8}")
lst1=A|B
lst2=A&B
lst3=A-B
lst4=A^B
print("这两个集合的并集为:",lst1)
print("这两个集合的交集为:",lst2)
print("这两个集合的差集为:",lst3)
print("这两个集合的对称差集为:",lst4)
n=int(input("请输入一个数:"))
if n in A and n in B:
 print(f"输入的数{n}即在集合A也在集合B中")
elif n in A or n in B:
 print(f"输入的{n}数在集合A或集合B中")
else:
 print(f"输入的数{n}不在集合A和集合B中")

集合A:{1, 2, 3, 4, 5}
集合B:{4, 5, 6, 7, 8}
这两个集合的并集为: {1, 2, 3, 4, 5, 6, 7, 8}
这两个集合的交集为: {4, 5}
这两个集合的差集为: {1, 2, 3}
这两个集合的对称差集为: {1, 2, 3, 6, 7, 8}
请输入一个数:0
输入的数0不在集合A和集合B中

10、输入一个字符串和一个字符,计算字符在字符串中出现的次数。

str = input('输入字符串:')
i= input('输入统计的字符')
print(i,'在',str,'中出现:',str.count(i),'次。')

输入字符串:hello world
输入统计的字符l
l 在 hello world 中出现: 3 次。

11、对zip对象结果进行序列解包,并循环遍历;对enumerate对象结果进行序列解包,并循环遍历。

lst1=random.choices(range(101),k=10)
lst2=random.choices(range(50,101),k=10)
print(f"随机生成10个0~100的列表{lst1}\n随机生成10个50~100的列表{lst2}")
lst=zip(lst1,lst2)
for i,j in lst:
    print("循环遍历:",i,j)

lst3=random.choices(range(100,1001),k=10)
print("随机生成10个100~1000的列表为:\n",lst3)
lst4=enumerate(lst3)
for x,y in lst4:
    print("解包并循环遍历",x,y)

随机生成10个0~100的列表[75, 70, 4, 67, 16, 51, 62, 28, 90, 2]
随机生成10个50~100的列表[71, 70, 89, 80, 72, 84, 51, 68, 52, 90]
循环遍历: 75 71
循环遍历: 70 70
循环遍历: 4 89
循环遍历: 67 80
循环遍历: 16 72
循环遍历: 51 84
循环遍历: 62 51
循环遍历: 28 68
循环遍历: 90 52
循环遍历: 2 90
随机生成10个100~1000的列表为:
[110, 573, 285, 513, 270, 798, 748, 901, 312, 895]
解包并循环遍历 0 110
解包并循环遍历 1 573
解包并循环遍历 2 285
解包并循环遍历 3 513
解包并循环遍历 4 270
解包并循环遍历 5 798
解包并循环遍历 6 748
解包并循环遍历 7 901
解包并循环遍历 8 312
解包并循环遍历 9 895

12、随机生成20个数字的列表,保留奇数列表。filter

lst=random.choices(range(101),k=20)
print("随机生成20个数字的列表为:\n",lst)
def f(n):
 return n%2==1
lst1=filter(f,lst)
print("其中的奇数列表为:",list(lst1))

随机生成20个数字的列表为:
[86, 31, 46, 43, 41, 64, 96, 61, 62, 28, 53, 32, 89, 97, 82, 77, 75, 20, 54, 29]
其中的奇数列表为: [31, 43, 41, 61, 53, 89, 97, 77, 75, 29]

13、输入一些数字,作为元组的元素,查找最后一个数字在元组中出现多少次?

tup = input("请输入一些数字:")
print(f"最后一个元素{tup[-1]}出现次数是{tup.count(tup[-1])}")

请输入一些数字:867843697234857435098707887
最后一个元素7出现次数是6

14、输入一些数字,作为元组的元素,在元组中随机确定一个数字,查找这个数字首次出现的位置。

tup = input("请输入一些数字:")
n = input("请输入一个数字:")
print(f"你输入的这个数字{n}在这些数字中首次出现的位置是第{tup.index(n)}个位置")

请输入一些数字:5376560874643
请输入一个数字:7
你输入的这个数字7在这些数字中首次出现的位置是第2个位置

15、随机生成10个小写字母,随机生成10个大写字母。

lst = random.sample(string.ascii_lowercase, 10)
print("随机生成的小写字母:", lst)
LST= random.sample(string.ascii_uppercase, 10)
print("随机生成的大写字母:", LST)

随机生成的小写字母: [‘z’, ‘v’, ‘x’, ‘u’, ‘e’, ‘r’, ‘n’, ‘a’, ‘m’, ‘t’]
随机生成的大写字母: [‘J’, ‘T’, ‘K’, ‘N’, ‘W’, ‘G’, ‘M’, ‘Y’, ‘O’, ‘U’]

16、创建一个20以内奇数列表,计算列表中所有数的和。

lst=random.choices(range(21),k=30)
print("随机生成30个20以内的数字列表为:",lst)
lst1=[]
for i in lst:
 if i%2==1:
     lst1.append(i)
print("所有数的和为:",sum(lst1))

随机生成30个20以内的数字列表为: [12, 9, 1, 16, 2, 20, 9, 3, 16, 5, 15, 1, 14, 4, 13, 6, 9, 2, 19, 8, 9, 1, 0, 15, 0, 7, 4, 5, 14, 13]
所有数的和为: 134

17、设计一个函数,接受一组数据,分别计算最大值和最小值。

n=input("请输入一些数:")
print("这些数中最大的为:",max(n))
print("这些数中最小的为:",min(n))

请输入一些数:80875098314875
这些数中最大的为: 9
这些数中最小的为: 0

18、统计一篇英文文章的词频。

 import requests
 from collections import Counter
 import re
 url = 'http://en.people.cn/'
 response = requests.get(url)
 text = response.text
 text = text.lower()
 text = re.sub(r'[^\w\s]', '', text)
 words = text.split()
 stopwords = set(['the', 'and', 'a', 'an', 'in', 'on', 'is', 'are', 'was', 'were', 'am', 'i', 'you', 'he', 'she', 'it', 'we', 'they', 'me', 'him', 'her', 'us', 'them', 'my', 'your', 'his', 'her', 'its', 'our', 'their', 'mine', 'yours', 'his', 'hers', 'ours', 'theirs'])
 words = [word for word in words if word not in stopwords]
 word_counts = Counter(words)
 for word, count in word_counts.most_common():
     print(f"{word}: {count}")

21、随机生成1000个由大小写英文字母构成的字符串,分别统计每个字符的个数。

import random
 from collections import Counter
 strings = [''.join(random.choices('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', k=10)) for _ in range(1000)]
 char_counts = Counter(''.join(strings))
 for char, count in char_counts.items():
     print(f"{char}: {count}")

L: 186,n: 191,z: 202,O: 167,u: 183,h: 192,N: 165,J: 175,p: 229,r: 190,k: 180,M: 191,g: 204,o: 192,Z: 190,c: 202,A: 172,V: 180,y: 207,X: 217,l: 197,G: 205,H: 183,Y: 207,s: 203,x: 195,a: 161,K: 184,C: 172,D: 202,U: 184,w: 178,E: 182,P: 184,m: 190,B: 189,d: 184,v: 171,i: 208,f: 197,S: 212,t: 177,e: 193,I: 206,Q: 214,R: 223,W: 192,j: 194,T: 204,q: 202,b: 200,F: 192,

22、已知列表data中有若干字符串,要求编写程序,对data中的字符串进行过滤,只输出重复字符不超过一半的字符串。

 from collections import Counter
 data = ['hello', 'world', 'python', 'programming', 'code', 'example', 'test', 'hello world']
 def f(data):
     lst= []
     for i in data:
         char_counts = Counter(i)
         half_length = len(i) // 2
         excess_chars = sum(1 for count in char_counts.values() if count > half_length)
         if excess_chars <= half_length:
             lst.append(i)
     return lst
 lst_data = f(data)
 for s in lst_data:
     print(s)

24、编写程序,生成包含1000个[0,100]的随机整数,并统计每个元素的出现次数。

 nums=random.choices(range(101),k=1000)
 print("生成1000个[0,100]的随机整数:",nums)
 dct={i:0 for i in range(101)}
 for i in nums:
     dct[i]+=1
 for num,count in dct.items():
     print(f"数字{num}:        出现      {count}次")

数字0: 出现 11次
数字1: 出现 18次
数字2: 出现 6次
数字3: 出现 9次
数字4: 出现 13次

25、编写程序,用户输入一个列表和2个整数作为下标,然后输出列表中介于2个下标闭区间之间的元素组成的子列表。例如用户输入[1,2,3,4,5,6]和2,5,程序输出[3,4,5,6]。

 lst= eval(input("请输入一个列表:"))
 start_index = int(input("请输入起始下标:"))
 end_index = int(input("请输入结束下标:"))
 if start_index < 0 or end_index < 0 or start_index >= len(lst) or end_index >= len(lst) or start_index > end_index:
     print("无效的下标!")
 else:
     print("介于两个下标之间的子列表为:",lst[start_index:end_index+1])

请输入一个列表:1212,21,2,12,12,2,2,12,12,1,2,33
请输入起始下标:2
请输入结束下标:7
介于两个下标之间的子列表为: (2, 12, 12, 2, 2, 12)

26、设计一个字典,并编写程序,用户输入内容作为“键”,然后输出字典对应的“值”,如果用户输入的“键”不存在,则输出“您输入的键不存在!”

 dct = { "苹果": "apple", "香蕉": "banana","橙子": "orange","葡萄": "grape","西瓜": "watermelon"}
 name= input("请输入一个水果名称:")
 if name in dct:
     print(dct[name])
 else:
     print("您输入的键不存在!")

请输入一个水果名称:苹果
apple

27、编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。

 nums=random.choices(range(101),k=20)
 print("生成20个随机整数:",nums)
 lst1=nums[0:10]
 lst2=nums[10:21]
 print(f"将前10个元素升序排列{sorted(lst1)}\n将后10个元素降序排列{sorted(lst2,reverse=True)}")

生成20个随机整数: [22, 48, 60, 74, 2, 49, 15, 67, 10, 97, 19, 66, 37, 75, 25, 8, 22, 32, 16, 50]
将前10个元素升序排列[2, 10, 15, 22, 48, 49, 60, 67, 74, 97]
将后10个元素降序排列[75, 66, 50, 37, 32, 25, 22, 19, 16, 8]

28、编写程序,输入一个字符串,输出其中出现次数最多的字符及其出现次数。

 lst_str = input("请输入一串字符串:")
 dct = {}
 for char in lst_str:
     if char in dct:
         dct[char] += 1
     else:
         dct[char] = 1
 max_char = max(dct, key=dct.get)
 max_count = dct[max_char]
 print(f"出现次数最多的字符是{max_char}    出现{max_count}次")

请输入一串字符串:rtewrtry
出现次数最多的字符是r 出现3次

29、使用字典推导式生成字典,字典的键是所有的英文字母,值是对应的ASCII码。

 d1={}
 for i in range(26):
        d1[chr(i+65)]=i+65
 for i in range(26):
        d1[chr(i+97)]=i+97
 print(d1)

{‘A’: 65, ‘B’: 66, ‘C’: 67, ‘D’: 68, ‘E’: 69, ‘F’: 70, ‘G’: 71, ‘H’: 72, ‘I’: 73, ‘J’: 74, ‘K’: 75, ‘L’: 76, ‘M’: 77, ‘N’: 78, ‘O’: 79, ‘P’: 80, ‘Q’: 81, ‘R’: 82, ‘S’: 83, ‘T’: 84, ‘U’: 85, ‘V’: 86, ‘W’: 87, ‘X’: 88, ‘Y’: 89, ‘Z’: 90, ‘a’: 97, ‘b’: 98, ‘c’: 99, ‘d’: 100, ‘e’: 101, ‘f’: 102, ‘g’: 103, ‘h’: 104, ‘i’: 105, ‘j’: 106, ‘k’: 107, ‘l’: 108, ‘m’: 109, ‘n’: 110, ‘o’: 111, ‘p’: 112, ‘q’: 113, ‘r’: 114, ‘s’: 115, ‘t’: 116, ‘u’: 117, ‘v’: 118, ‘w’: 119, ‘x’: 120, ‘y’: 121, ‘z’: 122}

30、生成从某个字母开始的n个元素构成的字典。如l开始的5个。

 star = input("请输入开始的字母:")
 n = int(input("几个元素"))
 star_ascll = ord(star)
 d1={}
 print(star_ascll)
 for i in range(n):
        d1[chr(star_ascll)]=0
        star_ascll+=1
 print(d1)

请输入开始的字母:t
几个元素7
116
{‘t’: 0, ‘u’: 0, ‘v’: 0, ‘w’: 0, ‘x’: 0, ‘y’: 0, ‘z’: 0}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张有泽

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值