1.字符串反转
str1 = input()
print(str1[::-1])
list1= list(input())
list1.reverse()
str = ''.join(list1)
print(str)
2. 列表去重排序打印
import numpy as np
ls=["p","p","y","y","k","k","j","z"]
ll = np.unique(ls)
print(' '.join(ll), end = ' ')
# set:无序不重复
ls=["p","p","y","y","k","k","j","z"]
lls = set(ls)
lls.sort()
print(' '.join(lls), end=' ')
# fromkeys()生成新字典 字典键去重
ls=["p","p","y","y","k","k","j","z"]
temp = {}.fromkeys(ls).keys()
print(' '.join(sorted(list(temp))), end=' ')
# di = {}.fromkeys(keys, values) 返回dict
# dm = di.keys() / di.values() 返回dict_keys对象
# list(dm) 对象列表化
3. 统计列表元素出现次数(排序)
ls = ["A", "B", "B", "C", "C"]
lls = sorted(set(ls))
for l in lls:
print('{0} : {1}'.format(l, ls.count(l)))
ls=["A","B","B","C","C"]
d = dict()
for item in ls:
if d.get(item):
d[item] += 1
else:
d[item] = 1
d = sorted(d.items(), key=lambda e: e[0])
for item in d:
print('{} : {}'.format(item[0], item[1]))
# d = sorted(d.items(), key=lambda e: e[0])
# d.items() 为要排序的对象
# key=lambda 变量:变量[维数] 按照维数排序
# 注:对字典类型sorted(按维数)后转化为list,list中每一个元素为元祖(key, value)
4. 列表取中位数
def median(ls):
ls.sort()
half = len(ls) // 2
return (ls[half] + ls[~half]) / 2
# 索引取反
5. 矩阵加法
list1 = [(1,1,1), (2,2,2), (3,3,3)]
list2 = [(1,0,0), (0,1,0), (0,0,1)]
listm = []
for i in range(3):
for j in range(3):
listm.append(list1[i][j] + list2[i][j])
print('[{0}, {1}, {2}]'.format(listm[:3], listm[3: 6], listm[6:]))
补充:
# 手动输入创建list
list1 = []
for i in range(3):
list1.append([])
for j in range(3):
list1[i].append(eval(input()))
print(list1)
6. 进制转化输出
def trans(n, k):
ls = []
while n > 0:
ls.append(str(n % k))
n = n // k
ls.reverse()
atr = eval(''.join(ls))
print(atr)
n, k = eval(input())
trans(n, k)
# 递归 字符串相加
def trans(n, k):
if (n < k):
return str(n);
else:
return trans(n // k, k) + str(n % k)
n, k = eval(input())
print(trans(n, k))
7. 水仙花数
n = int(input())
if n >= 3 and n < 6:
for i in range(10 ** (n - 1), 10 ** n):
sum = 0
for j in map(int, str(i)):
sum = sum + j ** n
if sum == i:
print(i)
# map(func, iter) 对序列进行func转化
# list(map(int, str(123))) 结果为[1,2,3]
# list(map(str, [1,2,3,4,5,6,7,8])) 结果为'12345678'
8. 数列求和
sum=a+aa+aaa+⋯+aa⋯a(n个a)
a = eval(input())
n = eval(input())
sm = 0
str1 = ''
for i in range(n):
str1 += str(a)
sm += eval(str1)
print(sm)
9. 求n以下的最大素数
# for相当于一个if,for结束后可接一个else
from math import*
n = int(input())
for i in range(n-1,1,-1):
for j in range(2, int(sqrt(i))+1):
if i % j == 0:
break
else:
print(i)
break
求最小的n个素数:
from math import sqrt
n = eval(input())
i = 2
cnt = 1
while cnt <= n:
for j in range(2, int(sqrt(i)+1)):
if i % j == 0:
break
else:
print(i)
cnt = cnt + 1
i = i + 1
10. 求完数
输出最小的N(1 <= N <= 4)个完数。所谓完数就是该数恰好等于除自身外的因子之和。
def factorsum(n):
ls = []
for i in range(1, n):
if n % i == 0: #得到n的所有因子
ls.append(i)
if sum(ls) == n:
ls2 = [str(i) for i in ls]
return ls2
else:
return False
n = eval(input())
cnt = 1
i = 2
while cnt <= n:
if factorsum(i):
print('{}={}'.format(i,'+'.join(factorsum(i))))
cnt = cnt + 1
i = i + 1
11. 分解质因数
分解质因数只针对合数(非质数或者非素数,不包括1在内), 每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。
# 递归
from math import sqrt
num = int(input())
ls = []
def fast(num):
flag = 1
for i in range(2, int(sqrt(num))+1):
if num % i == 0 and i != num:
ls.append(i)
flag = 0
fast(num//i)
break
if flag == 1:
ls.append(num)
fast(num)
print(ls)
# 循环
from math import sqrt
num = int(input())
ls = []
def fast(num):
while num > 1:
for i in range(2, num + 1):
if num % i == 0:
ls.append(i)
# print(i)
num = num // i
# print(num)
break
fast(num)
print(ls)