python 考核内容
1、九九乘法表
# 1、for
for i in range(1,10):for j in range(1,i+1):print('{}*{}={:<2}'.format(j,i,i*j), end=' ')print()# 2、推导式
print('\n'.join([' '.join([f"{x}*{y}={x*y:<2}" for y in range(1, x+1)]) for x in range(1, 10)]))
3、创建一个函数实现删除重复元素的功能。现已知列表 [1,1,6,3,1,5,2],利用函数输出删除重复元素后的列表。
def dup(x):res = []seen = set()for i in x:if i not in seen:res.append(i)seen.add(i)return reslst = [1,1,6,3,1,5,2]
print(dup(lst))
5、分别用递归函数和普通自定义函数求阶乘 n! = 1 * 2 * 3 * … * n,并利用函数求当 n = 4 时的函数值。
## 自定义函数
def factLoop(n):if n == 0: return 1res = 1for i in range(1, n+1):res *= ireturn res## 自定义递归函数
def factRecu(n):if n == 0: return 1 # 终止条件return n * factRecu(n-1)print(factLoop(4))
print(factRecu(4))
6、编写程序,利用循环实现求出 1-100 之间偶数的和,奇数的和。
# x = y = 1
# for i in range(1, 101):
# if i % 2:
# y += i
# else:
# x += i# print('1-100之间偶数的和 %d,奇数的和 %d。' % (x, y))
# print('1-100之间偶数的和 {0},奇数的和 {1}。'.format(x, y))
# print(f'1-100之间偶数的和 {x},奇数的和 {y}。')
print(f'1-100之间偶数的和 {sum(x for x in range(2, 101, 2))},奇数的和 {sum(x for x in range(1, 101, 2))}。')
《考核题库》
1、输出 9 * 9 乘法口诀表。
for i in range(1, 10):print()for j in range(1, i+1):print("%d*%d=%d" % (i,j,i*j),end=" ")
2、编写函数,判断一个数字是否为素数(已知素数:除了1和它本身外,不能被其他自然数整除),是则返回字符串YES,否则返回字符串NO。
答:
import math
def IsPrime(v):n=int(math.sqrt(v)+1)for I in range(2,n):if v%I ==0:return 'No'else:return 'Yes'
print(IsPrime(6))
3、创建一个函数实现删除重复元素的功能。现已知列表[1,1,6,3,1,5,2],利用函数输出删除重复元素后的列表。
list01=[1,1,6,3,1,5,2]
def duplictae(lists):L=[]for i in lists:if i not in L:L.append(i)return L
print(duplictae(list01))
4、编写函数,实现计算圆面积
from math import pi as PI
def Circle(r):if isinstance(r, int) or isinstance(r, float):return PI*r*relse:return ("请给定数值型数据")print(Circle(2))
5、分别用递归函数和普通自定义函数求阶乘n! = 1 * 2 * 3 * … * n,并利用函数求当n=4时的函数值。
(1)递归
def fact(n):if n == 1:return 1return n * fact(n - 1)
print(fact(4))
(2)普通函数
def fact(n):s=1for i in range(1,n+1):s *=ireturn s
print(fact(4))
6、编写程序,利用循环实现求出1-100之间偶数的和,奇数的和。
sum1= 0
sum2= 0
for i in range(1,101):if i % 2 == 0:sum1=sum1 +ielse:sum2=sum2+i
print("1-100之间偶数的和是:{},奇数的和是:{}".format(sum1,sum2))
7、判断一个数是否是回文数(已知回文数是从左边读和右边读结果是一样的。)
1、判断回文数
# 方法 1 flag 用法
pn = input('Please enter a number:')
i =0
j = len(pn)-1
flag = True
while i<= j:if pn[i] != pn[j]:print('No')flag=Falsebreak
i,j = i+1, j-1
if flag:
print('Yes')# 方法 2 while else 用法
pn = input('Please enter a number:')
i = 0
j = len(pn)-1
while i<= j:if pn[i] != pn[j]:print('No') break
i,j = i+1,j-1
else: # 只要不是通过break退出循环就运行print('Yes')
# 方法 3 切片
pn = input('Please enter a number:')
if pn == pn[::-1]:print('Yes')
else:print('No')# 方法 3 进一步简化
pn = input('Please enter a number:')
print('Yes') if pn==pn[::-1] else print('No')
8、.默认给出两个用户及密码user=[‘’,‘’],=[‘123’,‘456’]
用户登陆(判断用户是否存在):
1)如果存在:判断用户密码是否正确?如正确则提示登录成功,如不正确则提示密码错误
2). 如果不存在:重新登陆,总共有三次登陆机会
user=['redhat','westos']
passwd=['123','456']
for i in range(3):us = input('请输入用户名:')if us == user[0] or us == user[1]:pa=input('请输入密码:')if us == user[0]:if pa == passwd[0]:print('登陆成功')breakelse:print('密码错误')if us == user[1]:if pa == passwd[1]:print('登陆成功')breakelse:print('密码错误')else:print('用户名错误')
else:
print('次数用尽,请稍后再试')
9、输入一个标识符,判断是否合法。
import keyword
value = input('变量名:')
if value[0].isdigit() or value in keyword.kwlist:print('不合法')
else:for i in value:if not i.isalnum() and not i == '_':print('不合法')breakelse:print('合法')
10、编写程序,统计一行字符的大写、小写,数字和空格的数量,并利用程序统计出字符串’My is ’中大写、小写,数字和空格的数量。
s = input("请输入一行字符:")
count_upper = 0
count_lower = 0
count_digit = 0
count_space = 0
for ch in s:if ch.isupper(): count_upper += 1if ch.islower(): count_lower += 1if ch.isdigit(): count_digit += 1if ch.isspace(): count_space += 1print("大写字符:", count_upper)
print("小写字符:", count_lower)
print("数字字符:", count_digit)
print("空格字符:", count_space)
11、编写程序,实现分段函数计算,如下表所示。
x = input('Please input x:')
x = eval(x) # int(x)
if x < 0 or x >= 20:print(0)
elif 0 <= x < 5:print(x)
elif 5 <= x < 10:print(3 * x - 5)
elif 10 <= x < 20:print(0.5*x-2)
12、编写一个函数 , 可以接收任意多个数,返回的是一个元组。元组的第一个值为所有参数的平均值,第二个值是大于平均值的所有数。
def cacluate(*args): #接收任意多个数,输出为元组avg = sum(args) / len(args) #计算平均数up_avg = [] #定义一个空列表,存放比平均值大的所有数for item in args: #遍历所有数if item > avg:up_avg.append(item) #把比平均值大的加入到列表中return avg, up_avg #返回平均值,以及列表print(cacluate(1,2,3,4,5)) #调用函数,以(1,2,3,4,5)为例
13、编写程序,生成一个包含 20 个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。(提示:使用切片)
import random
x = [random.randint(0,100) for _ in range(20)]
# randrange()
print(x)
y = x[::2]
y.sort(reverse=True)
x[::2] = y
print(x)
14、根据指定月份,打印该月份属于的季节(提示:3,4,5属于春季 6,7,8属于夏季 9,10,11属于秋季 12,1,2属于冬季)
month=int (input('请输入月份:'))
if month in [3,4,5]:print('春季')
elif month in[6,7,8]:print('夏季')
elif month in[9,10,11]:print('秋季')
else:print('冬季')
15、有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
counter = 0
for i in range(1,5):for j in range(1,5):for k in range(1,5):if i != j and j != k and k != i:print("{}{}{}".format(i,j,k))counter += 1print("共{}种组合".format(counter))