最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

世界看点:Python中21道个程序小练习

来源:博客园


(资料图片)

1.使用格式化输出的三种方式实现以下输出(name换成自己的名字,既得修改身高体重,不要厚颜无耻)

name = "ABDMLBM"height = 175weight = 140# "My name is "Nick", my height is 180, my weight is 140"print("My name is %s,my height is %s,my weight is %s"%(name,height,weight))print("My name is {},my height is {},my weight is {}".format(name,height,weight))print(f"My name is {name},my height is {height},my weight is {weight}")

2.输入姑娘的年龄后,进行以下判断:

  • 如果姑娘小于18岁,打印“不接受未成年”

  • 如果姑娘大于18岁小于25岁,打印“心动表白”

  • 如果姑娘大于25岁小于45岁,打印“阿姨好”

  • 如果姑娘大于45岁,打印“奶奶好”

while True:    girl_age =int( input("输入美女年龄"))    if girl_age < 18:        print("不接受未成年")    elif girl_age >= 18 and girl_age < 25:        print("心动表白")    elif girl_age >= 25 and girl_age < 45:        print("阿姨好")    else :        print("奶奶好")

3.预习while循环,打印1-100之间的偶数:

i = 1while i < 101:    oi = i % 2    if oi == 0:        print(i)    i += 1

4.通过预习写一个猜年龄游戏,需求:给定一个标准年龄,用户通过输入年龄判断年龄是否等于标准年龄,如果等于——打印猜对了;如果小于——打印猜小了;如果大于——打印猜大了,增加用户输入年龄功能,并可以参考while循环博客,为应用程序添加循环。

预习while循环,猜年龄游戏升级版,有以下三点要求:

  • 允许用户最多尝试3次

  • 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序

  • 如果猜对了,就直接退出

age = 25count = 0while count < 4:    user_age = int(input("请输入你的年龄:"))    if user_age == age:        print("你猜对了")        break    elif user_age > age:        print("你猜大了")    else:        print("你猜小了")    count += 1    if count != 3 :        continue    else:        print("你已经猜了三次,答"Y"或者"y"还想再玩,答"N"或者"n"退出")        user_player = input("请输入:")        if user_player == "Y" or user_player == "y":            count = 0        else:            break

5.统计s = "hello alex alex say hello sb sb"中每个单词的个数

s = "hello alex alex say hello sb sb"l=s.split()print(l)dic = {}for item in l:    if item in dic:        dic[item]=dic[item]+1    else:        dic[item]=1print(dic)

6.统计一篇英文文章内每个单词出现频率,并返回出现频率最高的前10个单词及其出现次数

from collections import Counterimport rewith open("a.txt", "r", encoding="utf-8") as f:    txt = f.read()c = Counter(re.split("\W+",txt))  #取出每个单词出现的个数print(c)ret = c.most_common(10)   #取出频率最高的前10个print(ret)

7.冒泡排序

def mao_pao(li):    for i in range(len(li)):        for j in range(len(li)):            if li[i] < li[j]:                li[i],li[j] = li[j] ,li[i]import randomli = list(range(10))random.shuffle(li)print(li)mao_pao(li)print(li) 

8.删除列表中的重复元素

#方式一li = [1,5,5,4,12,3,1,5]print(list(set(l)))#方式二li = [1,5,5,4,12,3,1,5]def func(li):    l = []    for i in li:        if i not in l:            l.append(i)    return lprint(func(li)) 

9.二分查找

#方式一:递归版li = [1,2,3,4,5,6,7,8,9,10]def erfen(li,aim ,start=0 ,end=len(li)-1):    if start <= end:        mid = (start+end)//2        if li[mid] >aim :  #如果中间的值比目标值大,就从左边找            return erfen(li,aim,start,mid-1)        elif li[mid]aim:            end = li[mid] -1        else:            return midprint(erfen(li,10)) 

10、写出下面代码的输出结果

def f(x,l=[]):    for i in range(x):        l.append(i*i)    print(l)f(2)  #[0,1]f(3,[3,2,1]) #[3,2,1,0 1 4]f(3) #[0,1,0,1,4]

11. 实现字符串反转 输入str="string"输出"gnirts"

# 方式一def str_reverse(str):    return str[::-1]  #从前到后步长为-1print(str_reverse("string"))# 方式二def str_reverse2(str):    l = list(str)    l.reverse()    new_str = "".join(l)    return new_strprint(str_reverse2("string")) 

12.一行代码实现对列表a中的偶数位置的元素进行加3后求和

# 0 1 2 3 4# 0   5   7sums=sum(map(lambda x:x+3,list(range(5))[::2]))print(sums) 

13.List=[-2,1,3,-6] ,如何实现以绝对值大小从小到大将list中内容排序

List=[-2,1,3,-6]List.sort(key=abs)  #按照绝对值从小到大排序print(List) 

14. 如果当前日期为20170130,要求写一个函数输出N天后的日期

import datetimedata = "20170130"def func(n,data):    date=datetime.datetime.strptime(data,"%Y%m%d")    da=datetime.timedelta(n)    return date+daprint(func(2,data)) 

15.实现一段代码,功能是将这段代码打印出来

import osdef print_code():    with open(os.path.join(os.getcwd(),__file__),"r",encoding="utf-8") as f:        return f.read()print(print_code()) 

16.合并两个列表,并去重,组成一个新的列表

# 方式一list1 = [1,2,3,5,8,4,2,6]list2 = [11,44,21,2,54,77]print(list(set(list1+list2)))#方式二list1.extend(list2)print(list(set(list1)))#方式三def list_union(list1,list2):    for i in list2:        list1.append(i)    return list1print(list(set(list_union(list1,list2)))) 

17.什么是lambda表达式?他有什么好处?另外Python在函数编程方面提供了些什么函数和语法?

答:lambda 表达式也就是匿名函数,一些简单的功能需要实现的时候可以用匿名函数,一行语句体搞定。它语法简单,简化代码,不会产生命名冲突,污染命名空间。Python提供了map,filter,reduce等函数方法,提供了装饰器,闭包等语法

18.详细说说tuple,list,dict的用法以及他们的特点

tuple:元组,不可变数据类型,访问效率高,适合存储一些常量数据,可以作为字典的键使用list:列表,是可变数据类型,可以通过下标索引取值dict:字典,是可变数据类型,存储方式为键值对的形式,可以通过相对应的键获取相对应的值。key支持多种数据类型

19. list 对象 alist [{"name":"a","age":20},{"name":"b","age":30},{"name":"c","age":25}],按 alist 中元素的age 由大到小排序

alist = [{"name": "a", "age": 20}, {"name": "b", "age": 30}, {"name": "c", "age": 25}]alist.sort(key=lambda x:x["age"],reverse=True)print(alist) 

20.将字符串:"k:1|k1:2|k2:3|k3:4",处理成 python 字典:

s = "k:1|k1:2|k2:3|k3:4"str_list = s.split("|")print(str_list)d = {}for i in str_list:    key ,value = i.split(":")    d[key] = valueprint(d) 

21.斐波那契数列

def fib(n):    if n<=2:        return 1    else:        return fib(n-1) + fib(n-2)print(fib(10))

关键词: