python练习小程序

案例1

  • 题目:编写程序,生成包含1000个0到100之间的随机整数,并统计每个元素的出现次数(提示:使用集合)。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#导入随机模块
import random

#首先先生成一个随机0到100之间的随机整数,然后循环1000次,得到一个长度1000的列表x, 注意列表里面的元素是可以重复出现的
x=[random.randint(0,100) for i in range(1000)]
#可以输出一下列表x看看
print(x)

#然后将列表x转化为集合d, 注意集合里面元素是不能重复的
d=set(x)
#可以输出元组看看
print(d)

#接下来循环遍历元组d里面的每一个元素 在 列表x中出现的次数
for v in d:
print(v,':',x.count(v))

  • 运行结果比较长,自行测试

案例2

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

代码:

1
2
3
4
5
6
7
8
9
10
# -*- coding: utf-8 -*- 
dict11 = {'one':'zhangsan','two':'lisi','three':3}

user_input = input("请输入字典键值:")

if user_input in dict11.keys():
print(dict11[user_input])
else:
print("您输入的键值不存在")

  • 运行结果:

mark


案例3

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

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding: utf-8 -*- 
import random

list1 = [random.randint(0,100) for i in range(20)]

print("列表生成结果:\n",list1)

a = list1[0:10]
a.sort()
print("列表list前10个元素升序排列结果:\n",a)

b = list1[10:20]
b.sort(reverse = True)
print("列表list后10个元素降序排列结果:\n",b)

a.extend(b)
print("前10个元素升序排列和后10个元素降序排列合并之后列表为:\n",a)

  • 运行结果:

mark


案例4

  • 题目:编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。(提示:使用切片。)

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -*- coding: utf-8 -*- 
import random

list1 = [random.randint(0,100) for i in range(20)]
print("随机生成的列表list:\n",list1)

y = list1[::2]
y.sort(reverse = True)
print("list列表偶数下标降序排列结果:\n",y)

list1[::2] = y

print("最终对list列表偶数下标降序排列而奇数下标元素不变的结果:\n",list1)

  • 运行结果:

mark


案例5

  • 题目:编写程序,至少使用2种不同的方法计算100以内所有奇数的和

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#方法1
# -*- coding: utf-8 -*-
import random

sum1 = 0

for i in range(1,101,2):
sum1 += i

print("方法1:100以内奇数之和:",sum1)


#方法2

sum2 = 0
i = 1

while i < 100:
if i%2 != 0:
sum2 += i
i += 1

print("方法2:100以内奇数之和:",sum2)

  • 运行结果:

mark


案例6

  • 题目:编写函数,判断一个整数是否为素数,并编写主程序调用该函数

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -*- coding: utf-8 -*-

num = int(input("请输入一个正整数:"))

def issushu(n):
for i in range(2,n):
if n%i == 0:
print(n,"不是一个素数")
break
else:
print(n,"是一个素数")

issushu(num)

  • 运行结果:

mark


案例7

  • 题目:编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# -*- coding=utf-8 -*-

str1 = input("请输入字符串:")

def upper_lower_other(str_1):

upper = lower = other =0

list1 = list(str_1)
for x in list1:
if x.isupper():
upper += 1
elif x.islower():
lower += 1
else:
other += 1


tup1 = (upper,lower,other)
print("您输入的字符串中大写字母、小写字母以及其他字符数量依次为:\n",tup1)

upper_lower_other(str1)

  • 运行结果:

mark


案例8

  • 题目:编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# -*- coding=utf-8 -*-

num_str_list = input("请输入您想输入的整数,如若多个请以空格分开:\n")

num_list = num_str_list.split()

def num_input(num_list_can):
sum = 0

for x in num_list_can:
sum += int(x)

print("您输入的整数之和为:",sum)

num_max = max(num_list_can)
print("您输入的整数中最大值为:",num_max)

num_input(num_list)

  • 运行结果:

mark