菜鸟教程Python3实例刷题 26-50
- 题目网址 https://www.runoob/python3/python3-examples.html
- 本篇记录了《第26题:Python 生成日历》 至 《第50题:Python 查找列表中最大元素》
26
# 引入日历模块 , canlendar.month()模块
import calendar
yy = int (input("输入年份: "))
mm = int (input("输入月份:"))
print(calendar.month(yy,mm))
27
# 用递归的方式输出斐波那契额数列:
# F(n) = F(n-1) + F(n-2)
# 0 1 1 2 3 5 8 13 ...
def Fibo(n):
if n==0:
return 0
elif n==1:
return 1
else:
return Fibo(n-1) + Fibo(n-2)
n = int(input("输入斐波那契项数: "))
if n<1:
print("请输入一个正整数!")
else:
for x in range(0,n):
print(Fibo(x))
28
# 文件I/O
with open("test.txt","wt") as out_file:
out_file.write("在当前目录下创建一个文本并写入信息~\n啦啦啦")
with open("test.txt","rt") as in_file:
text = in_file.read()
print(text)
29
# 字符串判断
# 测试实例一
print("测试实例一")
str = "runoob"
print(str.isalnum()) # 判断所有字符都是数字或者字母
print(str.isalpha()) # 判断所有字符都是字母
print(str.isdigit()) # 判断所有字符都是数字
print(str.islower()) # 判断所有字符都是小写
print(str.isupper()) # 判断所有字符都是大写
print(str.istitle()) # 判断所有单词都是首字母大写,像标题
print(str.isspace()) # 判断所有字符都是空白字符、\t、\n、\r
print("------------------------")
# 测试实例二
print("测试实例二")
str = "runoob"
print(str.isalnum())
print(str.isalpha())
print(str.isdigit())
print(str.islower())
print(str.isupper())
print(str.istitle())
print(str.isspace())
30
# 字符串的大小写转换
str = "www.runoob"
print(str.upper()) # 把所有字符中的小写字母转换成大写字母
print(str.lower()) # 把所有字符中的大写字母转换成小写字母
print(str.capitalize()) # 把第一个字母转化为大写字母,其余小写
print(str.title()) # 把每个单词的第一个字母转化为大写,其余小写
31
# 输出的是一个元组,第一个元素是所查月份的第一天对应的是星期几(0-6),第二个元素是这个月的天数。
# 以上实例输出的意思为 2016 年 9 月份的第一天是星期四,该月总共有 30 天。
import calendar #ctrl + 左击 查看源码
monthRange = calendar.monthrange(2016,9)
print(monthRange)
print(calendar.month_name())
32
# 求昨天的日期
# 引入 datetime 模块
import datetime
def getYesterday():
today = datetime.date.today()
print("测试today: ",end='\t');print(today,end='\t');print(type(today))
oneday = datetime.timedelta(days=1)
print("测试oneday: ",end='\t');print(oneday,end='\t');print(type(oneday))
yesterday = today - oneday
print("真正yesterday: ",end='\t')
return yesterday
# 输出
print(getYesterday())
33
# list 常用操作
# https://www.runoob/python3/python3-list-operator.html
li = ["a", "b", "mpilgrim", "z", "example"]
# 增加元素
li.append("new") # 1、增加单个元素
print(li)
li.insert(2, "new") # 2、插入指定位置,下标从0开始
print(li)
li.extend(["two", "elements"]) # 3、增加多个元素
print(li)
# 获取元素下标
print(li.index("new"))
print(li.index("a"))
# 删除
li.remove("new") # 删除首次出现的一个值
print(li)
li.pop() # pop 会做两件事: 删除 list 的最后一个元素, 然后返回删除元素的值。
print(li)
# 还有很多进阶的函数,看网址,总结的非常好
34
# Python 约瑟夫生者死者小游戏
# 30 个人在一条船上,超载,需要 15 人下船。
# 于是人们排成一队,排队的位置即为他们的编号。
# 报数,从 1 开始,数到 9 的人下船。
# 如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
# 解题思路:一共30个人,走15个人,留15个人。 9*15=135 30*5 =150 > 135
li = [0]
for i in range(1,31):
li.append(i)
levae_num = 0
start = 1
print(li)
i=0
while i<=8:
if i==8:
start = (start + i) % (30 - levae_num)
print(li[start],"号下船了")
li.remove(li[start])
levae_num = levae_num + 1
i = 0
elif levae_num==15:
break
else:
i = i +1
print('\n')
people=list(range(1,31))
while len(people)>15:
i=1
while i<9:
people.append(people.pop(0))
i+=1
print('{:2d}号下船了'.format(people.pop(0)))
35
# 分鱼
# (x-1)%5==0
# x = (x-1)/5 * 4
def fun():
for i in range(1,10000):
x = i
ans = i
for j in range(1,6):
flag = 0
if (x-1)%5==0:
x = (x-1)/5*4
flag =1
else:
break
if j==5 and flag==1:
print(ans)
return
fun()
36
import time
print('按下回车开始计时,按下 Ctrl + C 停止计时。')
while True:
input("") # 如果是 python 2.x 版本请使用 raw_input()
starttime = time.time()
print('开始')
try:
while True:
print('计时: ', round(time.time() - starttime, 0), '秒', end="\r")
time.sleep(1)
except KeyboardInterrupt:
print('结束')
endtime = time.time()
print('总共的时间为:', round(endtime - starttime, 2), 'secs')
break
37
def sumOfSeries(n):
sum = 0
for i in range(1, n + 1):
sum += i * i * i
return sum
n = int(input("输入一个正整数: "))
print(sumOfSeries(n))
38
list=[1,3,5,7,9,35]
sum=0
for i in range(0,len(list)):
sum+=list[i]
print(sum)
39
# # 定义一个整型数组,并将指定个数的元素翻转到数组的尾部。
# # 例如:(ar[], d, n) 将长度为 n 的 数组 arr 的前面 d 个元素翻转到数组尾部。
#
# def getMyReverse(arr,d,n):
# temp_arr = [] + arr # temp_arr = arr 是特别严格的。修改了arr等价于修改了temp_arr
# for i in range(0,d):
# arr.remove(arr[0])
# # print(temp_arr)
# # print(arr)
# for i in range(0,d):
# temp = temp_arr[i]
# arr.append(temp)
# return arr
#
# arr = [1,2,3,4,5,6,7]
# n = len(arr)
# print(arr)
# d = int(input("翻转前几个元素? [1~6]\n"))
#
# print(getMyReverse(arr,d,n))
# 滑动窗口的思想
arr1 = [1,2,3,4,5,6,7]
n = len(arr1)
d = int(input("翻转前几个元素? [1~6]\n"))
arr2 = arr1*2
for i in range(0,n):
print(arr2[d+i],end=' ')
print('\n')
print(arr2[d:d+n])
40
# 将列表的头尾两个元素对调
def fun(arr):
first = arr[0]
last = arr[len(arr)-1]
arr[0]=last
arr[len(arr)-1]=first
return arr
arr = [1,2,3,4,5,6,7]
print(fun(arr))
41
# 将列表指定位置的两个元素对调
def swapPositions(list, pos1, pos2):
get = list[pos1], list[pos2]
# print(get)
# print(type(get)) 元组类型
list[pos2], list[pos1] = get
return list
List = [23, 65, 19, 90]
pos1, pos2 = 1, 3
print(swapPositions(List, pos1 - 1, pos2 - 1))
42
def Reverse1(lst):
lst.reverse()
return lst
def Reverse2(lst):
new_lst = lst[::-1]
return new_lst
lst1 = [10, 11, 12, 13, 14, 15]
lst2 = [10, 11, 12, 13, 14, 15]
print(Reverse1(lst1))
print(Reverse2(lst2))
43
li = [1, 6, 3, 5, 3, 4]
print("查看 4 是否在列表中 ( 使用循环 ) : ")
try:
li.index(4)
print("在")
except:
print("不在")
44
RUNOOB = [6, 0, 4, 1]
print('清空前:', RUNOOB)
RUNOOB.clear()
print('清空后:', RUNOOB)
45
def clone_runoob(li1):
li_copy = li1[:]
return li_copy
li1 = [4, 8, 2, 10, 15, 18]
li2 = clone_runoob(li1)
li3 = li1.copy()
print("原始列表: ", li1)
print("复制后列表:", li2)
print("复制后列表:", li3)
46
li = [1,2,3,4,5,3,4,3,3,3,3,4,5,5,43,3,3,3,3,3,4,3,3,]
print(li)
num = int(input("输入要查询的数字: "))
ans =li.count(num)
print("数字{0}的次数是{1}".format(num,ans))
47
list1 = [11, 5, 17, 18, 23]
print("列表元素之和为: ", sum(list1))
48
li = [1,3,5]
ans = 1
for i in range(0,len(li)):
ans *= li[i]
print(ans)
49
list1 = [10, 20, 4, 45, 99]
list1.sort()
# 这里要加 * 表示取其中的元素, 而且要用:
print("最小元素为:", *list1[:1])
print("最小元素为:", list1[:1])
print("最小元素为:", min(list1))
50
list1 = [10, 20, 4, 45, 99]
list1.sort()
print("最大元素为:", list1[-1])
print("最大元素为:", max(list1))
更多推荐
Python编程练习:菜鸟教程Python3实例刷题二
发布评论