目录
1、写一个函数实现摇色子的功能,传入色子的个数,返回所有色子的点数总和
2、写一个函数,求出列表中数值类元素(int、float)的平均值
3、写一个函数,传入一个字符串,返回去掉字符串中所有空格后的字符串
4、写一个函数,传入两个字符串,返回从第一个字符串中去掉第二个字符串中的字符之后的字符串。
5、写一个函数,生成指定长度的验证码,验证码由英文字母和数字构成
10、写一个函数,传入一个列表,返回列表中最大的和第二大的元素,不允许使用Python内置的排序和最大函数
11、写一个函数,实现对字符串的加密,假设字符串中只有小写英文字母和空格,加密规则是a变d,b变e,c变f,……,x变a,y变b,z变c,空格保持不变
1、写一个函数实现摇色子的功能,传入色子的个数,返回所有色子的点数总和
import random
def sum(n):
s = 0
for i in range(n):
s +=random.randint(1,6)
return s
if __name__ == '__main__':
n = int(input('请输入骰子个数'))
print('骰子点数是:{}' .format(sum(n)))
2、写一个函数,求出列表中数值类元素(int、float)的平均值
def avg(a):
count = 0
s = 0
for i in range(len(a)):
if ('0' < str(a[i]) < '9'):
s += (a[i])
count += 1
return s / count
if __name__ == '__main__':
a =[12,23,45,'s','y',12.1,'rtr','as']
print(avg(a))
3、写一个函数,传入一个字符串,返回去掉字符串中所有空格后的字符串
#写一个函数,传入一个字符串,返回去掉字符串中所有空格后的字符串
def delete(a):
j = 0
b = []
for i in range(len(a)):
if (a[i] != ' '):
b.append(a[i])#将不是空格的数插入到一个新的列表中
return b#返回一个列表
if __name__ == '__main__':
s = ' hsg jd '
print("".join(delete(s)))
#join()函数将列表或元组中的字符串合并成一个字符串
4、写一个函数,传入两个字符串,返回从第一个字符串中去掉第二个字符串中的字符之后的字符串。
#写一个函数,传入两个字符串,返回从第一个字符串中去掉第二个字符串中的字符之后的字符串
def delete(x,y):
b =[]
for i in range(len(x)):
for j in range(len(y)):
if (x[i] == y[j]):
x = x.replace(y[j],' ')
for i in range(len(x)):
if (x[i] != ' '):
b.append(x[i]) # 将不是空格的数插入到一个新的列表中
b = "".join(b)
return b
if __name__ == '__main__':
x = 'qweruutyuuiop'
y = 'rtyu'
s = delete(x,y)
print(s)
5、写一个函数,生成指定长度的验证码,验证码由英文字母和数字构成
#写一个函数,生成指定长度的验证码,验证码由英文字母和数字构成
import random
def generate(n):
li_code = []
for i in range(65,91):#大写字母A-Z
li_code.append(chr(i))#使用chr方法,可以获取一个编码对应的字符
# 使用ord方法,可以获取一个字符对应的编码
for j in range(97,123):#小写字母a-z
li_code.append(chr(j))
for k in range(0,10):#数字0-9
li_code.append(chr(k))
code = random.sample(li_code, n)#从列表中选择n个随机且独立的元素放入列表中
ran_code = "".join(code)#可以把列表或者元组快速的转变成为字符串,并且以指定的字符分隔
'''
txt = '_'
print(txt.join(['hi','hello','good'])) #hi_hello_good
print(txt.join(('good','hi','hello'))) #good_hi_hello
'''
return ran_code
#sample(seq, n) 从序列seq中选择n个随机且独立的元素
if __name__ == '__main__':
n = int(input('请输入验证码长度:'))
print(generate(n))
6、写一个函数,传入圆的半径,返回圆的周长和面积
#写一个函数,传入圆的半径,返回圆的周长和面积
def count(r):
s = 3.14 * r * r
c = 2 * 3.14 * r
return s , c
if __name__ == '__main__':
r = int(input('请输入圆的半径:'))
print('面积是:%.3f周长是:%.3f' % (count(r)))
#str.format() 方法还可以使用 *元组 和 **字典 的形式传参,两者可以混合使用。
# 位置参数、关键字参数、*元组 和 **字典 也可以同时使用,但是要注意,位置参数要在关键字参数前面,*元组 要在 **字典 前面。
7、写一个函数,传入两个正整数,返回两个数的最大公约数
#写一个函数,传入两个正整数,返回两个数的最大公约数
# 辗转相除法
num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入第一个数字:"))
m = max(num1, num2)
n = min(num1, num2)
r = m % n
while r != 0:
m ,n= n ,r
r = m % n
print(num1, "和", num2, "的公约数为", n)
8、写一个函数,判断传入的正整数是不是素数,返回布尔值
#写一个函数,判断传入的正整数是不是素数,返回布尔值
def judge(n):
count = 0
for i in range(1,n):
if (n % i == 0):
count += 1
if (count <= 1):
return True
else:
return False
if __name__ == '__main__':
n = int(input('请输入一个数:'))
print(judge(n))
9、写一个函数,判断传入的正整数是不是回文数,返回布尔值。
说明:12321是一个回文数,因为从左向右和从右向左读,结果是一样的
#写一个函数,判断传入的正整数是不是回文数,返回布尔值
def judge(n):
s = str(n)
if (s[::] == s[::-1]):
return True
else:
return False
if __name__ == '__main__':
n = int(input('请输入一个数:'))
print(judge(n))
10、写一个函数,传入一个列表,返回列表中最大的和第二大的元素,不允许使用Python内置的排序和最大函数
#写一个函数,传入一个列表,返回列表中最大的和第二大的元素,不允许使用Python内置的排序和最大函数。
def max(n):
for i in range(len(n) - 1):#冒泡排序
for j in range(len(n) - 1):
if n[j] < n[j + 1]:
n[j] ,n[j + 1] = n[j + 1] , n[j]
# for i in range(len(n) - 1):#选择排序
# min = i
# for j in range(i + 1,len(n)):
# if n[min] < n[j]:
# n[min] , n[j] = n[j] ,n[min]
return n[0],n[1]
if __name__ == '__main__':
n = [10,20,67,98,20,190,78,900]
print('列表最大为:{},次大为:{}'.format(*max(n)))
11、写一个函数,实现对字符串的加密,假设字符串中只有小写英文字母和空格,加密规则是a
变d
,b
变e
,c
变f
,……,x
变a
,y
变b
,z
变c
,空格保持不变
# 写一个函数,实现对字符串的加密,假设字符串中只有小写英文字母和空格,加密规则是`a`变`d`,`b`变`e`,`c`变`f`,……,`x`变`a`,`y`变`b`,`z`变`c`,空格保持不变
def change(s):
a = []
for i in range(len(s)):
if (s[i] != 'x' and s[i] != 'y' and s[i] != 'z' and s[i] != ' '):
a.append(chr(ord(s[i]) + 3))
if (s[i] == 'x'):
a.append('a')
if (s[i] == 'y'):
a.append('b')
if (s[i] == 'z'):
a.append('c')
if (s[i] == ' '):
a.append(' ')
b = ''.join(a)
return b
if __name__ == '__main__':
s = 'asdf xyz'
print(change(s))