编码练习3

1、随机函数random的6个常用知识点:

random.random()
 random.randint(1,10)
 random.uniform(1,10)
 a=[1,2,3,4,5]
 random.shuffle(a)
a=[1,2,3,4,5]
random.choice(a)

在这里插入图片描述

>>> random.sample("0123456789",3)
['2', '7', '1']
>>> random.sample("0123456789",3)
['8', '3', '9']
>>> random.sample("0123456789",2)
['9', '2']
>>> random.sample("0123456789",4)
['3', '0', '8', '1']
>>> random.sample("0123456789",5)
['9', '4', '6', '7', '8']

练习:
将字符串中的boy替换成m
s = “I am a boy”

s = "I  am    a      boy"
replace_letter = 'm'
letter_list = list(s)
for index in range(len(letter_list)):
    if s[index:index+3] == "boy":
        letter_list[index:index+3] = 'm'

print("".join(letter_list))

在这里插入图片描述
习题1:
将字符串"k:1|k1:2|k2:3|k3:4"处理成字典:{‘k’:‘1’,‘k1’:‘2’,‘k2’:‘3’,‘k3’:‘4’}
算法1:
1 生成一个空字典来存结果
2 用split拆开字符串,生成一个列表
3 遍历这个列表,再用“”:“”拆开,分别获取k和1…
4 存到一个字典里面

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

print(result)

在这里插入图片描述
将字典{‘k’:‘1’,‘k1’:‘2’,‘k2’:‘3’,‘k3’:‘4’}拼回字符串"k:1|k1:2|k2:3|k3:4"

算法:
1 先把字典的key排序
2 然后按照排序后的key,依次取value,然后使用:把key和value做拼接,然后把拼接后的结果存在一个列表里面
3 使用join,使用|将列表的所有元素做拼接

d = {'k':'1','k1':'2','k2':'3','k3':'4'}
result = []
for key in sorted(d.keys()):
    s = key+":"+d[key]
    result.append(s)

print(result)
print("|".join(result))

在这里插入图片描述
习题2:
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?在10万以内判断
分析:
1 x 在10万里面,x是某个数,不知道是谁
2 (x+100)开方 = y y整数
3 (x+100+168)开方 = z z整数
4 开方:math.sqrt
5 怎么判断z和y是否整数?
y2是整数且是x+100
z
2是整数且是x+100+168

import math
result = []
for i in range(1,100000):
    y = math.sqrt(i+100)
    z = math.sqrt(i+100+168)
    if (int(y)**2 == i+100) and (int(z)**2 == i+100+168):
        print(i)
        result.append(i)

print(result)

在这里插入图片描述
习题3:
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则输入第二个字母,继续判断第二个字母。
分析:
1 s = [“Monday”,“Tuesday”,“Wednesday”,“Thursday”,“Friday”,“Saturday”,“Sunday”]
2 输入一个字符,判断是否在s的所有单词的第一个字母是否存在
3 有,第一种只有唯一首字母匹配到了,第二种2个单词的首字母匹配到了。
遍历:判断首字母相同的单词有几个,存个list,如果list长度是1,说明没有重复的天,直接输出;如果list长度是2,说明有2个。再让用户输入一个字母。判断在list的所有单词的第二个是否相等,相等就可以输出结果了。

def get_weekday_word():
    s = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
    first_letter = input("请输入一个字母:")
    result = []
    for i in s:
        if first_letter.lower() == i[0].lower():
            result.append(i)
    if len(result) == 0:
        return ""
    if len(result) == 1:
        return result[0]
    if len(result) == 2:
        second_letter = input("请输入第二个字母:")
        for j in result:
            if j[1] == second_letter:
                return j
        else:
            return ""

print(get_weekday_word())

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值