Python-字符串和模块的应用

作业(下周四晚上6点前交齐):

作业1:求第n项的斐波那契数列的值(n>=1)

作业2:小明考试非常好,妈妈为了奖励小明,给一对刚刚出生的兔子,兔子可以经过四个月,可以长大称为成年的兔子,可以生育新的兔子,假设成年兔子,每个月生一对小兔子,问,第n个月共有多少对兔子(加上兔子不死)

作业3:给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数

(选做题):某个人进入如下一个棋盘中,要求从左上角开始走,最后从右下角出来(要求只能前进,不能后退),问题:共有多少种走法?
    

    0 0 0 0 0 0 0 0
    
    0 0 0 0 0 0 0 0
    
    0 0 0 0 0 0 0 0
    
    0 0 0 0 0 0 0 0
    
    0 0 0 0 0 0 0 0
    
    checkerboard = [
        [0, 0, 0, 0, 0, 0, 0, 0]
        [0, 0, 0, 0, 0, 0, 0, 0]
        [0, 0, 0, 0, 0, 0, 0, 0]
        [0, 0, 0, 0, 0, 0, 0, 0]
        [0, 0, 0, 0, 0, 0, 0, 0]
        [0, 0, 0, 0, 0, 0, 0, 0]
    ]

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

```python
def func():
    for i in range(1,50):
        if (i % 5 == 0 or i % 6 ==0 ):
            if i % 5 == 0 and i % 6 ==0:
                continue  #利用continue跳过能被5和6整除的数
        print(i)
func()
```

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

```python
def ls_conut_o(A):
    count = 0
    for i in A:
        if i % 2 == 0:
            b = A.index(i)
            count += b
    print(count)
A = [1,2,3,4,4]
ls_conut_o(A)
```

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

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

```python
import os

a = 'D:\User\666\python\index.txt'
>>> os.path.basename(a)
'index.txt '
>>> os.path.dirname(a)
' D:\\User\\666\\python'
>>>
```

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

```python
def is_Chinese(word):
    count = 0
    for ch in word:
        if '\u4e00' <= ch <= '\u9fff':
            count += 1
    print(f'”{word}“ 这个字符串中有 {count} 个汉字')
word = input('请输入:')
is_Chinese(word)
```

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

```python
a = 'AbCdE'
a.lower()  #小写
a.upper()  #大写
```

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

```python
>>> ls = 'www.baidu.com'
>>> print(ls.split('.'))
['www', 'baidu', 'com']
>>> ' '.join(ls.split('.'))
'www baidu com'
```

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

```python
a = input('请输入字符串:')
print('正在为你进行剔除空格的操作')
print('......')
print('......')
print('......')
b = ''
for i in a:
    if i.isspace() == True:
        continue
    b += i
print(f'剔除空格后的字符串为:{b}')
```

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

```python
>>> a = input()
《平凡的世界》
>>> a
'《平凡的世界》'
>>> len(a)
7
```

14.两个学员输入各自最喜欢的游戏名称,判断是否一致,如果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输出你们俩喜欢不相同的游戏。

```python
a = input('请输入A同学喜欢的游戏:')
b = input('请输入B同学喜欢的游戏:')
if a.lower() == b.lower():
    print('你们喜欢相同的游戏')
else:
    print('你们喜欢不同的游戏')
```

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

```python
a = input('请输入A同学喜欢的游戏:')
b = input('请输入B同学喜欢的游戏:')
if a.lower() == b.lower():
    print('你们喜欢相同的游戏')
else:
    print('你们喜欢不同的游戏')
```

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

```python
a = input('请输入一个时间格式:(格式如下“2008/08/08”)')
li = []
for i in (a.split('/')):
    li.append(i)
print(f'{li[0]}年-{li[1]}月-{li[2]}日')
```

![image-20220415145235934](C:\Users\陈宇鹏\AppData\Roaming\Typora\typora-user-images\image-20220415145235934.png)

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

```python
a = input('请输入一个字符串进行排序:')
li = []
count = ''
for i in a:
    b = int(ord(i))
    li.append(b)
li.sort()
for i in li:
    c = chr(i)
    count += c
print(count)
print(count[::-1])
```

![image-20220415145123202](C:\Users\陈宇鹏\AppData\Roaming\Typora\typora-user-images\image-20220415145123202.png)

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

```python
string = input('请输入一句话').split(' ')
string.reverse()
string = (' ').join('string')
print(string)
```

![image-20220415145027907](C:\Users\陈宇鹏\AppData\Roaming\Typora\typora-user-images\image-20220415145027907.png)

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

```python
import  re


url = "http://www.163.com?userName=admin&pwd=123456"
basename = re.search(r'(.*)\?(.*)',url,re.M|re.I)
print(basename.group(1))
print(basename.group(2))
```

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

```python
book_list = ['比时间更短 比爱情更长','你和梦想必须一起活下去','平凡的世界','陪安东尼度过漫长岁月','我不喜欢这世界:我只喜欢你']
for i in range (len(book_list)):
    if len(book_list[i]) > 10:
        b = book_list[i][0:8:1]
        c = b + '...'
        book_list[i] = c
print(book_list)
```

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

```python
string=input("请输入数据\n")
k=0
for i in string:
    if(string[k]=='呵'):
        print(k)
    k+=1
```

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

```python
string=input("请输入数据\n")
k=0
for i in string:
    if(string[k-1]=='呵' and string[k] == '呵'):
        print(k)
    k+=1
```

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

```python
import re


def filterchar(string):
    pattern = r'(邪恶)'
    sub = re.sub(pattern,'**',string)
    print(sub)
char = '老牛很邪恶'
filterchar(char)
```

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

```python
a = 'asdwea'
print('a' in a)
>>>True
```

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

```python
str_name = 'i love python'
if str_name.find('love') != -1:
    print('字符串中的每一个字符均在另一个字符串中出现过')
else:
    print('字符串中的每一个字符没有另一个字符串中出现过')
```

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

```
import random

a = 'abcdefghijklmnopqrstuvwxyz'
ran_str = random.sample(a,5)   //在a中随机返回5个字符以列表的形式返回
```

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

```python
import string
import random

random_letter = string.ascii_letters
random_digit = string.digits
random_string = " ".join(random.sample(random_digit + random_letter,10))
print(random_string)
```

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

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

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

```python
strings = input('请输入需要排序的字符:')
ls = list(strings)
ls.sort(key=str.lower)  //对列表内的字符不区分大小写
count = ' '.join(ls)
print(f'排序后的结果为{count}')
```


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

```python
a = input('请输入字符串,判断是否为回文数列:')
if a == a[::-1]:
    print(f'{a}为回文数列')
else:
    print(f'{a}不是回文数列')
```

31.磁盘遍历

```python
import os
from os import path

def scanner_file(url):
    file_list = os.listdir(url)
    for filename in file_list:
        real_name = os.path.join(url,filename)
        if path.isfile(real_name):
            print(path.abspath(real_name))
        elif path.isdir(real_name):
            scanner_file(real_name)
url = input('请输入你要遍历的磁盘:')
scanner_file(url)
```

进阶题:
    某个人进入如下一个棋盘中,要求从左上角开始走,最后从右下角出来(要求只能前进,不能后退),注意:1表示该位置无法同行。问题:共有多少种走法?
    

    0 0 0 0 0 0 0 0
    
    0 0 0 0 0 0 1 0
    
    0 0 1 0 0 0 0 0
    
    1 0 0 0 0 0 0 0
    
    0 0 0 0 0 0 0 0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值