1、 第2题:如何使用Python输出一个[斐波那契数列]Fibonacci
100以内的斐波那契数列
# encoding:utf-8
a = [1, ] # 第一个x
x = 1
y = 1
i = 1
# x, y 依次向后移动
while y <= 100:
i += 1
z = x + y
x = y
y = z
a.append(x)
print(a)
2、python实现列表去重的方法?
简单直接的办法,集合里面的元素不可以重复
# encoding:utf-8
my_list = [1, 1, 2, 2, 3, 3, 5, 6, 7, 88]
my_new = []
my_list = set(my_list)
for i in my_list:
my_new.append(i)
print (my_new)
查看是否在my_end里,如果不在就添加,在的话跳过
#encoding:utf-8
my_list = [1, 1, 2, 2, 3, 3, 5, 6, 7, 88]
my_end = []
for i in my_list:
if i in my_end:
pass
else:
my_end.append(i)
print my_end
3、断言判断
# encoding:utf-8
import os
import unittest
# assert方法判断
assert 1 == 1
assert 2 + 2 == 2 * 2
assert len(['my boy', 12]) < 10
# assertEqual方法判断
class Test(unittest.TestCase):
def test04(self):
"""失败案例"""
a = "上海-悠悠"
b = "yoyo"
self.assertEqual(a, b)
def test01(self):
"""判断 a == b """
a = 1
b = 1
self.assertEqual(a, b)
if __name__ == "__main__":
unittest.main()
4、写一个函数, 输入一个字符串, 返回倒序排列的结果?
def reverse2(text='abcdef'):
new_text=list(text)
new_text.reverse()
return ''.join(new_text)
reverse2('abcdef')
def reverse3(text='abcdef'):
new_text=[]
for i in range(1,len(text)+1):
new_text.append(text[-i])
return ''.join(new_text)
reverse3('abcdef')
def order_by(str):
return str[::-1]
print(order_by('123456'))
输出:654321
5、a=1, b=2, 不用中间变量交换a和b的值?
# encoding:utf-8
a = 1
b = 2
a = a + b # 此时的a是总和
b = a - b # 综合 -b,得到a的值 赋给 b
a = a - b # 总和 减去现在b的值,得到a
print(a, b)
a, b = b, a
6、zip用法
实例
以下实例展示了 zip 的使用方法:
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]
7、请尽可能列举python列表的成员方法,并给出以下列表操作的答案
1) a=[1, 2, 3, 4, 5], a[::2]=?, a[-2:] = ?
a[::2] = [1, 3, 5], a[-2:] = [4, 5]
2) 一行代码实现对列表a中的偶数位置的元素进行加3后求和?
a = [1, 2, 3, 4, 5]
print(sum([i + 3 for i in a if i % 2 == 0]))
8、设计一个函数返回给定文件名的后缀?
# encoding:utf-8
filename = "xudasoa.txt"
f = filename.rsplit('.', 1)[1]
print(f)
结果是:
['xudasoa', 'txt']
txt
9、求出0n的所有正整数中数字k(09)出现的次数。编程语言不限,Python优先。
例如:k=1,n=12,那么 1 在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]一共出现5次[1,10,11,12]
输入:k=1,n=12
输出:5
统计数字 1 在 [1,10,11,12]出现的次数这非常像Python中统计字符串a在字符串b中出现的次数:
b.count(a)
所以我们将把数字转为字符串来做统计。
# encoding:utf-8
import re
list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
count = 0
s_list = str(list)
for i in s_list:
# print(i)
if i == "1":
count += 1
print(count)
print(re.findall('1\d*',s_list))
print(type(s_list))
______________________________________________
结果是:
5
['1', '10', '11', '12']
<class 'str'>
10、在except中return后还会不会执行finally中的代码?怎么抛出自定义异常?介绍一下 except 的作用和用法?
会继续处理 finally 中的代码;用 raise 方法可以抛出自定义异常
except: #捕获所有异常
except: <异常名>: #捕获指定异常
except:<异常名 1, 异常名 2> : 捕获异常 1 或者异常 2
except:<异常名>,<数据>:捕获指定异常及其附加的数据
except:<异常名 1,异常名 2>:<数据>:捕获异常名 1 或者异常名 2,及附加的数据
https://www.runoob.com/python/python-exceptions.html.
11、在Python中输入某年某月某日,判断这一天是这一年的第几天?(可以用 Python 标准库)
# encoding:utf-8
# 在Python中输入某年某月某日,判断这一天是这一年的第几天?(可以用 Python 标准库)
import datetime
y = int(input('请输入4位数字的年份:')) # 获取年份
m = int(input('请输入月份:')) # 获取月份
d = int(input('请输入是哪一天:')) # 获取“日”
targetDay = datetime.date(y, m, d) # 将输入的日期格式化成标准的日期,2020-03-18
print("", 2020 - 1, 12, 31)
print("得到上一年的最后一天时间", targetDay.year - 1, 12, 31) # 如,(2020-1 12 31)
print("时间格式化之后为:", datetime.date(targetDay.year - 1, 12, 31)) # 时间格式化之后为2019-12-31
dayCount = targetDay - datetime.date(targetDay.year - 1, 12, 31) # 减去上一年最后一天,datetime.date(year, month, day)
print('%s是%s年的第%s天。' % (targetDay, y, dayCount.days))
结果是:
请输入4位数字的年份:2020
请输入月份:3
请输入是哪一天:3
2019 12 31
得到上一年的最后一天时间 2019 12 31
时间格式化之后为: 2019-12-31
2020-03-03是2020年的第63天。
12、将下面的Python代码简化?
my_list = []
for i in range(10):
my_list.append(i**2)
print(my_list)
简化后的代码
print([x**2 for x in range(10)])
参考博客:https://me.csdn.net/hihell