数据分析学习----python---day1(刷题)

1.求数字阶乘
n=5
k=1
for i in range(1:n+1):
    k=i*k
print(k)
2.求区间内所有的素数(只能被自身和1整除的数称为素数)
def is_prime(n):
    if n<=1:
        return True
    for i in range(2,n):
        if n%i==0:
            return False
     return True
def demo(s,e):
    result=[]
    for i in range(s,e+1):
        if is_prime(i):
            result.append(i)
    return result
print(demo(1,100))
3.求前n个数字的平方和
# 方法1
def sum_num(n):
    count=0
    for i in range(n+1):
        count=count+i**2
    return count

# 方法2 lambda和map函数
n=5
sum_of_squares = sum(map(lambda x:x**2,range(1,n+1)))  
  
4. 计算列表的和
list=[1,2,3,4,5]
sum=0
for l in list:
    sum+=i
print(sum)
5.数字范围内的所有偶数
even=[]
for i in range(1,100):
    if i%2==0:
        even.append(i)
print(even)
6.从列表中移除多个元素如 li=[1,2,3,4,5,6]  move=[4,5]
li=[1,2,3,4,5,6]
move=[2,3]
for i in move:
    li.remove(i)
print(li)
7.对列表元素去重
# 方法一 
list=[1,2,3,2,1,4,5,4]
print(set(list))
# 方法二
list=[1,2,3,2,1,4,5,4]
result=[]
for i in list:
    if i not in result:
        result.append(i)
print(result)
8.对列表进行排序
li=[6,4,5,7,8,9]
print(sorted(li))
li.sort(reverse=False)
print(li)
9.学生成绩排序
student=[{'id':100,'name':'xxx','score':89},
         {'id':101,'name':'yyy','score':99},
         {'id':102,'name':'zzz','score':109}]
def getscore(info):
    return info['score']
print(sorted(student,key=getscore))
10 读取文件成绩并排序
def read_file():
    result=[]
    with open ("成绩.txt",'r',encoding='utf—8') as f:
        while True:
            line=f.readline()
            if len(line)==0:
                break
             scores= line.split(",")[-1].strip()
             result.append(scores)
    return result
scores=read_file()
scores.sort()
print("学生成绩",scores)
11.读取成绩文件最高最低分
def read_file():
    result=[]
    with open ("成绩.txt",'r',encoding='utf-8')as f:
        while True:
            line = f.readline()
            if len(line)==0
                break
             scores=line.split(",")[-1].strip()
             result.append(scores)
    return result
scores=read_file()
M=max(scores)
m=min(scores)
print("学生成绩的最高分'%s',最低分'%s':"%(M,m))
12 统计成绩中出现最多的单词
result={}
def read_file():
    with open ("words.txt",'r',encoding="utf_8") as f:
        line = f.read()
        words=line.split()
        filter_words=[word for word  in words if word and word.isalpha()]
        for word in filter_words:
            if word not in result:
               result[word]=0
            result[word]+=1
read_file()
sorted_values=sorted(result.items(),key=lambda item:item[1],reverse=True)
print(sorted_values)
13 猜数游戏
import random
num = random.randint(1,10)
while True:
    n=int(input("input num"))
    if n==num:
        print('True')
        break
    elif n>num:
        print('big')
    else :
        print('small')
14 两个字符串排序后是否相等
s1='abc'
s2='cab'
print(sorted(s1)==sorted(s2))
15 字符串反转
s='deuwlis'
#方法1 切片
print(s[::-1])
# 方法二reversed()函数返回一个反向迭代器,然后你可以用join()方法将迭代器中的元素连接成一个新的字符串
reversed_s = "".join(reversed(s))
print(reversed_s)

补充:

map函数:

map(fumction,iterable,…)

function:一个应用于可迭代对象中每个元素的函数

iterable:一个或多个可以迭代的对象

返回值:一个迭代器,包含可迭代对象中每个元素应用函数后的结果

lambda函数:

也被称为匿名函数、是python中的一个简洁定义单行的最小函数

lambda arguments:expression 

arguments: 函数的参数,以,分隔

expression:关于参数的表达式

li=[1,2,3,4,5]
print(list(map(lambda x:x**2,li)))
列表推导式

[expression for item in iterable if condition]

expression:用于生成列表元素的表达式

iterable:一个课迭代的对象

item:用于遍历的对象

condition:一个用于筛选元素的条件表达式

# 用列表退到式生成一个1-10的平方的列表
result=[x for x in map(lambda x:x**2,range(1,11))]
print(result)
16 用列表推导式取出平方后大于10的数

li=[1,2,3,4,5]
l=[x for x in li if x**2<10]
print(l)
17 将句子所有的字符大写之后打印
word="hello word"
new=""
for i in word :
    new= new + i.upper()
print(new)

补充:

word.upper()   #每个字母都大写
word.title()       # 单词首字母大写
18 计算字母和数字个数
s="hello word 123"
s_count=0
n_count=0
for char in s:
    if char.isalpha():
        s_count+=1
    elif char.isdigit()
        n_count+=1
print("字母的数量'%s',数字的数量‘%s’"%(s_count,n_count))
19 替换空格 把字符串中的空格替换成%0
s='djbaub   suan an'
# 方法1
print(s.replace(" ","%0"))
# 方法2
def demo(s):
    new=""
    for i in s:
        if i==" ":
            new+="%0"
        else :
            new+=i
    return new
print(demo(s))      
20 使用列表推导式输出每一个奇数
result=  [x for x in range(1,101) if x%2!=0]
print(result)

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值