第15天作业

作业(所有代码统一使用函数):

作业1:    棋盘问题进行升级(软件方向的学生必须做):
    某个人进入如下一个棋盘中,要求从左上角开始走,最后从右下角出来(要求只能前进,不能后退),
    该棋盘中存在了障碍物(数字1),遇到障碍物,棋盘无法正常通过
    
    0 0 0 0 0 1 0 0

    0 0 0 1 0 0 0 0

    1 0 0 0 0 0 0 0

    0 0 1 0 0 0 0 0

    0 0 0 0 0 0 0 0


2 有一对兔子,从出生后的第3个月起,每个月都生一对兔子,
    小兔子长到第3个月后每个月又生一对兔子,
    假如兔子不死,问第n个月第兔子对数为多少?

def r_sum(n):
    if n == 1 or n == 2:
        return 1
    else:
        return r_sum(n-1) + r_sum(n-2)


m = int(input("请输入月数:"))
print("第 %d 个月有 %d 对兔子" % (m, r_sum(m)))



D:\day15>python 兔子问题.py                   
请输入月数:12
第 12 个月有 144 对兔子

    
    
3、假设用户每次上楼梯只能上一个台阶或者两个台阶,请写一个函数,判断用户到第n台阶共有多少种走法

def fab(n):
    if n == 1 or n == 0:
        return 1
    if n == 2:
        return 2
    if n > 2:
        return fab(n-1) + fab(n-2)
 
print(fab(5))

4、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

def print_fuhe(n):
    for i in range(1,n+1):
        if (i%5 ==0 or i%6==0) and not (i%5 ==0 and i%6==0):
            print(i)


n = int(input("输入需要处理的范围从0开始:"))
print_fuhe(n)




D:\day15>python 找出10000以内能被5或6整除,但不能被两者同时整除的数(函数).py
输入需要处理的范围从0开始:20
5
6
10
12
15
18
20


5、写一个方法,计算列表所有偶数下标元素的和(注意返回值)

def print_sum(ls):
    sum = 0
    i = 0
    while i < len(ls):
        sum += ls[i]
        i += 2
    return sum
    
ls = [1,2,3,4,5]
print("列表是:{},偶数下标元素和是:{}".format(ls,print_sum(ls)))



D:\day15>python 写一个方法,计算列表所有偶数下标元素的和.py
列表是:[1, 2, 3, 4, 5],偶数下标元素和是:9

6、判断一个数是否是质数(素数)?该如何声明方法?

def zhishu(num):
    flag = True
    for i in range(2,num//2):
        if num%i == 0:
            flag = False
            break
    return flag
    
num = int(input("请输入需要判断的数字:"))
if zhishu(num):
    print("{}是质数".format(num))
else:
    print("{}不是质数".format(num))


D:\day15>python "判断一个数是否是质数(素数)?该如何声明方法.py"
请输入需要判断的数字:7
7是质数

7、请使用函数完成选择、冒泡、插入三种排序

laaa = [1,3,4,24,4,3,2,4,5,3,234]


def xuanze(ls):
     x = len(ls)
     if x < 2:
          return

     for i in range(x):
          a = i
          for j in range(i+1,x):
               if ls[a] > ls[j]:
                    a = j
          if i != a:
               ls[i],ls[a] = ls[a],ls[i]
     return ls


def maopao(ls):
     x= len(ls)
     if x < 2:
          return

     for i in range(x):
          for j in range(x-1-i):
               if ls[j] > ls [j+1]:
                    ls[j],ls[j+1] = ls[j+1],ls[j]
     return ls


def charu(ls):
     x = len(ls)
     if x < 2:
          return

     for i in range(x):
          a,j = ls[i],i-1
          while j >=0 and ls[j] > a:
               ls[j+1] = ls[j]
               j -= 1
          ls[j+1] = a
     return ls


8.根据完整的路径从路径中分离文件路径、文件名及扩展名

ls="E:\jhj\IT作业\tist.py"
def file(ls):
    way=ls[0:11]
    name=ls[11:15]
    extension=ls[16:]
    print(way,name,extension)
file(ls)


D:\day15>python 根据完整的路径从路径中分离文件路径、文件名及扩展名.py
E:\jhj\IT作业   ist py

9.获取字符串中汉字的个数  

ls="E:\jhj\IT作业\tist.py"
def number(l):
  
    count = 0
    for item in l:
        if 0x4E00 <= ord(item) <= 0x9FA5:
            count += 1
    return count
print(number(ls))



D:\day15>python 获取字符串中汉字的个数.py
2

10.将字母全部转换为大写或小写

11.根据标点符号对字符串进行分行

12.去掉字符串数组中每个字符串的空格

13.随意输入你心中想到的一个书名,然后输出它的字符串长度。 (len()属性:可以得字符串的长度)

book=str(input("请输入书名:"))
print(len(book))


D:\day15>python 随意输入你心中想到的一个书名,然后输出它的字符串长度.py
请输入书名:骆驼祥子
4

14.,如果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输
出你们俩喜欢不相同的游戏。

perple1=str(input("请输入游戏:"))
perple2=str(input("请输入游戏:"))
for i in perple1 :
    for y in perple2 :
        if i == y :
            print("游戏一样")
        else:
            print("游戏不一样")
        

15.上题中两位同学输入 lol和 LOL代表同一游戏,怎么办?

game1=str(input("请输入游戏名称:"))
game2=str(input("请输入游戏名称:"))
if game1.upper() == game2.upper():
    print("游戏一样")
else:
    print("游戏不一样")





D:\day15>python "上题中两位同学输入 lol和 LOL代表同一游戏,怎么办.PY"
请输入游戏名称:lol
请输入游戏名称:LOL
游戏一样

16.让用户输入一个日期格式如“2008/08/08”,将 输入的日
    期格式转换为“2008年-8月-8日”。

time=input("请输入日期:")
s1=time.split("/")
newtime="{}年-{}月-{}日".format(s1[0],int(s1[1]),int(s1[2]))
print(newtime)


D:\day15>python 日期格式转换.py
请输入日期:2008/08/08
2008年-8月-8日

17.接收用户输入的字符串,将其中的字符进行排序(升
序),并以逆序的顺序输出,“cabed”→"abcde"→“edcba”。

ls='cabed'
l=list(ls)
l.sort()
print(l)
l.reverse()
print(l)




D:\day15>python .接收用户输入的字符串,将其中的字符进行排序.py
['a', 'b', 'c', 'd', 'e']
['e', 'd', 'c', 'b', 'a']

18.接收用户输入的一句英文,将其中的单词以反序输
出,“hello c sharp”→“sharp c hello”。

english=input("请输入一句英文:")
x=english.split(" ")
y=x[::-1]
x1=" ".join(y)
print(x1)



D:\day15>python 接收用户输入的一句英文,将其中的单词以反序输.py
请输入一句英文:hello c sharp
sharp c hello

19.从请求地址中提取出用户名和域名
http://www.163.com?userName=admin&pwd=123456

url='http://www.163.com?userName=admin&pwd=123456'
ls = url.split("/")
s1 = ls[2]
ls2 = s1.split("?")
print("域名是:{}".format(ls2[0]))
s1 = ls2[1]
ls3 = s1.split("&")
s1 = ls3[0]
ls4 = s1.split("=")
print("用户名是:{}".format(ls4[1]))




D:\day15>python 从请求地址中提取出用户名和域名.py
域名是:www.163.com
用户名是:admin


20.有个字符串数组,存储了10个书名,书名有长有短,现
在将他们统一处理,若书名长度大于10,则截取长度8的
子串并且最后添加“...”,加一个竖线后输出作者的名字。

ls = ["我喜欢你","哈哈","嘻嘻","西游记","特种兵"] ##10个书名太多了,我只存了几个


dir = {"我喜欢你":"xiaoluo","哈哈":"haoboxu","嘻嘻":"xuahobo","西游记":"haobo","特种兵":"hahah"} 
for i in range(0,len(ls)):
    s = ls[i]
    if len(s) > 10:
        s = s[0:9]+"..._"+str(dir[ls[i]])
    ls[i] = s
print(ls)





D:\day15>python 有个字符串数组,存储了10个书名.py
['我喜欢你', '哈哈', '嘻嘻', '西游记', '特种兵']


21.让用户输入一句话,找出所有"呵"的位置。

s = input("请输入一段话!")
ls = []
for i in range(0,len(s)):
    if s[i] == "呵":
        ls.append(i)

print("呵的位置是%s"%ls)





D:\day15>python "让用户输入一句话,找出所有呵的位置.py"反序输.py
请输入一段话!求呵的位置
呵的位置是[1]

22.让用户输入一句话,找出所有"呵呵"的位置。

s = input("请输入一段话!")
ls = []
for i in range(0,len(s)-1):
    if s[i] == "呵" and s[i+1]=="呵":
        ls.append(i)

print("呵呵的位置是%s"%ls)



D:\day15>python "让用户输入一句话,找出所有呵的位置.py"反序输.py
请输入一段话!输入呵呵,求位置
呵的位置是[2, 3]

23.让用户输入一句话,判断这句话中有没有邪恶,如果有邪
恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变
成”老牛很**”;


word = input("请输入字符串:")
print("邪恶消失后:{}".format(word.replace("邪恶","**")))




D:\day15>python "让用户输入一句话,判断这句话中有没有邪恶.py".py
请输入字符串:老牛很邪恶
邪恶消失后:老牛很**

24.如何判断一个字符串是否为另一个字符串的子串 
    find()  
    index()
    双层循环完成
    ??


25.如何验证一个字符串中的每一个字符均在另一个字符串
中出现过
    双层循环

name = "mkyong is learning python 123"
 
if name.find("python") != -1:
    print("found python!")
else:
    print("nothing")

26.如何随机生成无数字的全字母的字符串

import random
import string

random_str = ''.join(random.sample(string.ascii_lowercase , 10))

print(random_str)


D:\day15>python 如何随机生成无数字的全字母的字符串.py
wtflvmrqnb

27.如何随机生成带数字和字母的字符串

import random
import string

random_str = ''.join(random.sample(string.ascii_letters + string.digits, 20))

print(random_str)



C:\Users\山己几>python D:\day15\如何随机生成带数字和字母的字符串.py
DHipOdSKe0FntozLVEkB

28.如何判定一个字符串中既有数字又有字母

string=input("请输入数据\n")
if(not(string.isdigit()) and not(string.isalpha())):
        print("该数据中有数字也有字母")




D:\day15>python 如何判定一个字符串中既有数字又有字母.py".py".py
请输入数据
jdhasf456
该数据中有数字也有字母

29.字符串内的字符排序(只按字母序不论大小写)

import random
import string

random_str = ''.join(random.sample(string.ascii_lowercase , 10))
random_str = "".join((lambda x:(x.sort(),x)[1])(list(random_str)))
print(random_str)

30.判断一个字符是否是回文字符串(面试题)
    "1234567654321"
    "上海自来水来自海上"

#双指针
def is_palindrome(count):
    for i in range(0,len(count)//2):
        if count[i] != count[len(count)-i-1]:
            return False
        return True
word="上海自来水来自海上"
print(is_palindrome(word))


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值