作业1、给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数
a = [1, 2, 3, 4, 5, 2]
def test_1(ls):
for i in ls:
b = ls.count(i)
if b % 2 == 0:
print(i)
break
test_1(a)
作业2、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)
def test_2():
for i in range(10001):
if i % 5 == 0 or i % 6 == 0:
if i % 5 == 0 and i % 6 == 0:
pass
else:
print(i, end="\t")
test_2()
作业3、写一个方法,计算列表所有偶数下标元素的和(注意返回值)
def test_3(ls):
sum = 0
i = 1
while i < len(ls):
sum += ls[i]
i += 2
return sum
ls = [1, 2, 3, 4, 5, 6, 7]
print("列表是:{},奇数下标元素和是:{}".format(ls, test_3(ls)))
作业4、请使用函数完成选择、冒泡、插入三种排序
# 冒泡排序
def test_41(aList):
n = len(aList)
for i in range(0, n - 1):
for j in range(0, n - i - 1):
if aList[j] > aList[j + 1]:
aList[j], aList[j + 1] = aList[j + 1], aList[j]
if __name__ == "__main__":
li = [9, 8, 7, 6, 5, 4, 3, 2, 1]
print(li)
test_41(li)
print(li)
# 选择排序
def test_42(aList):
l = len(aList)
for j in range(l):
min_index = j
for i in range(min_index + 1, l):
if aList[min_index] > aList[i]:
min_index = i
aList[j], aList[min_index] = aList[min_index], aList[j]
if __name__ == "__main__":
li = [99, 88, 77, 66, 55, 44, 33, 22, 11]
print(li)
test_42(li)
print(li)
# 插入排序
def test_43(aList):
n = len(aList)
for i in range(n):
j = i
while j > 0:
if aList[j] < aList[j - 1]:
aList[j], aList[j - 1] = aList[j - 1], aList[j]
j -= 1
if __name__ == "__main__":
li = [999, 888, 777, 666, 555, 444, 333, 222, 111]
print(li)
test_43(li)
print(li)
作业5、根据完整的路径从路径中分离文件路径、文件名及扩展名
import os
path = "F:\python\视频\课堂笔记\第7天笔记.txt"
pathx, namex = os.path.split(path)
print(pathx)
print(namex)
作业6.获取字符串中汉字的个数
def test_6(char):
count = 0
for item in char:
if 0x4E00 <= ord(item) <= 0x9FA5:
count += 1
return count
print(test_6("qwertyuiop啊是的发给和就看了在下从v吧呢吗"))
作业7.将字母全部转换为大写或小写
str_ = "You are the best!"
print(str_.upper())
print(str_.lower())
作业8.根据标点符号对字符串进行分行
import re
line = "qwertyuio, asdfghjk, zxcvbnm"
linex = re.findall(r"[\w']+", line)
print(linex)
result = " ".join(linex)
print(result)
作业9.去掉字符串数组中每个字符串的空格
string = ["q w e r t y u i o p", "a s d f g h j k l ", "z x c v b n m "]
string = ','.join(string)
string = string.replace(" ", "").split(',')
print(string)
作业10.随意输入你心中想到的一个书名,然后输出它的字符串长度。 (len()属性:可以得字符串的长度)
book = str(input("请输入书名:"))
print(len(book))
作业11.两个学员输入各自最喜欢的游戏名称,判断是否一致,如
果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输
出你们俩喜欢不相同的游戏。
str1 = str(input("请输入游戏:"))
str2 = str(input("请输入游戏:"))
def test_11(str1, str2):
if str1 == str2:
print(str1)
else:
print(str1, str2)
test_11(str1, str2)
作业12.上题中两位同学输入 lol和 LOL代表同一游戏,怎么办?
str1 = str(input("请输入游戏:"))
str2 = str(input("请输入游戏:"))
def test_11(str1, str2):
str1 = str1.upper()
str2 = str2.upper()
if str1 == str2:
print(str1)
else:
print(str1, str2)
test_11(str1, str2)
作业13.让用户输入一个日期格式如“2008/08/08”,将 输入的日
期格式转换为“2008年-8月-8日”。
time = input("请输入日期:")
a = time.split("/")
print("转换后日期:")
timex = "{}年-{}月-{}日".format(a[0], int(a[1]), int(a[2]))
print(timex)
作业14.接收用户输入的字符串,将其中的字符进行排序(升
序),并以逆序的顺序输出,“cabed”→"abcde"→“edcba”。
ls1 = 'cabed'
ls2 = list(ls1)
ls2.sort()
ls3 = ''.join(ls2)
print(ls3)
ls2.reverse()
ls4 = ''.join(ls2)
print(ls4)
作业15.接收用户输入的一句英文,将其中的单词以反序输
出,“hello c sharp”→“sharp c hello”。
a_word = input("请输入一句英文:")
x = a_word.split(" ")
y = x[::-1]
x1 = " ".join(y)
print(x1)
作业16.从请求地址中提取出用户名和域名
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]))
作业17.有个字符串数组,存储了10个书名,书名有长有短,现
在将他们统一处理,若书名长度大于10,则截取长度8的
子串并且最后添加“...”,加一个竖线后输出作者的名字。
ls = ["西游记之齐天大圣", "三国演义之义结金兰", "红楼梦之我是贾宝玉", "水浒传之一百零八将"]
dir = {"西游记之齐天大圣": "吴承恩", "三国演义之义结金兰": "罗贯中", "红楼梦之我是贾宝玉": "曹雪芹", "水浒传之一百零八将": "施耐庵"}
for i in range(0, len(ls)):
s = ls[i]
if len(s) > 7:
s = s[0:7] + "...|" + str(dir[ls[i]])
ls[i] = s
print(ls)
作业18.让用户输入一句话,找出所有"呵"的位置。
word = input("请输入一段话!")
ls = []
for i in range(0, len(word)):
if word[i] == "呵":
ls.append(i + 1)
print("呵的位置是{}".format(ls))
作业19.让用户输入一句话,找出所有"呵呵"的位置。
word = input("请输入一段话!")
ls = []
for i in range(0, len(word) - 1):
if word[i] == "呵" and word[i + 1] == "呵":
ls.append(i + 1)
print("呵呵的位置是{}".format(ls))
作业20.让用户输入一句话,判断这句话中有没有邪恶,如果有邪
恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变
成”老牛很**”;
word = input("请输入字符串:")
print("邪恶消失后:{}".format(word.replace("邪恶", "**")))
作业21.如何判断一个字符串是否为另一个字符串的子串
find()
index()
双层循环完成
??
str1 = input("请输入字符串:")
str2 = input("请输入需要判断的字符串:")
flag = True
if str1.find(str2) != -1:
flag = False
if flag:
print("字符串{}不是{}的子串".format(str2, str1))
else:
print("字符串{}是{}的子串".format(str2, str1))
作业22.如何验证一个字符串中的每一个字符均在另一个字符串
中出现过
双层循环
word1 = input("请输入字符串:")
word2 = input("请输入需要判断的字符串:")
flag = True
for i in range(0, len(word2)):
if word1.find(word2[i]) == -1:
flag = False
if flag:
print("字符串{}都在{}中".format(word2, word1))
else:
print("字符串{}不都在{}中".format(word2, word1))
作业23.如何随机生成无数字的全字母的字符串
import random
import string
random_str = ''.join(random.sample(string.ascii_lowercase, 10))
print(random_str)
作业24.如何随机生成带数字和字母的字符串
import random
import string
random_str = ''.join(random.sample(string.ascii_letters + string.digits, 10))
print(random_str)
作业25.如何判定一个字符串中既有数字又有字母
string = input("请输入数据:\n")
if not (string.isdigit()) and not (string.isalpha()):
print("该数据中有数字也有字母")
作业26.字符串内的字符排序(只按字母序不论大小写)
str_list = ['d', 's', 'a', 'i', 'j', 'A', 'S', 'D', 'U', 'N']
new_list = sorted(str_list, key=str.lower)
print(new_list)
作业27.判断一个字符是否是回文字符串(面试题)
"1234567654321"
"上海自来水来自海上"
def test_27(count):
for i in range(0, len(count) // 2):
if count[i] != count[len(count) - i - 1]:
return False
return True
word = "1234567654321"
word1 = "上海自来水来自海上"
print(test_27(word))
print(test_27(word1))