作业(下周四晚上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