1.求水仙花数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次方之和等于它本身
①数字取整取余去计算个位十位百位
for i in range(100,1000):
x = i//100
y = i//10%10
z = i%10
if x**3+y**3+z**3 == i:
print('水仙花数{}'.format(i))
②字符串取个位十位百位
for i in range(100,1000):
x = str(i)[-1]
y = str(i)[-2]
z = str(i)[-3]
if int(x)**3+int(y)**3+int(z)**3 == i:
print('水仙花数{}'.format(i))
③三次循环每个位数
for x in range(1,10):
for y in range(10):
for z in range(10):
if x**3+y**3+z**3 == x*100+y*10+z:
print('水仙花数{}'.format(x*100+y*10+z))
2.请写出冒泡排序或选择排序
①冒泡排序
def bubb(li):
for j in range(len(li)-1):
for i in range(len(li)-1-j):
if li[i] > li[i + 1]:
li[i], li[i + 1] = li[i + 1], li[i]
return li
②选择排序
def choose(li):
for i in range(len(li)-1):
for j in range(i+1,len(li)):
if li[i] < li[j]:
li[i], li[j] = li[j], li[i]
print(li)
3.1-100斐波拉契数列求和
①递归
def fb(num):
if num ==1 or num == 2:
return 1
return fb(num-1) + fb(num-2)
sum = 0
for i in range(1,101):
sum += fb(i)
print(sum)
②递推交换
def fb(num):
a, b = 0, 1
for i in range(num):
a, b = b, a + b
return a
sum = 0
for i in range(1,101):
sum += fb(i)
print(sum)
③生成器
def fb(max):
a, b = 0, 1
while max > 0:
a, b = b, a + b
max -= 1
yield a
sum = 0
for i in fb(100):
sum += i
print(sum)
④列表求和
def fb(num):
a = [1,1]
for i in range(num-2):
a.append(a[-2]+a[-1])
return a
print(sum(fb(100)))
4.列表如何去重
①利用集合定义去重
def qc(old_list)
new_list = list(set(old_list))
return new_list
②利用不在新列表去重
def qc(old_list):
new_list = []
for i in old_list:
if i not in new_list:
new_list.append(i)
return new_list
③利用字典的键去重
def qc(old_list):
new_dict = {}
new_list = []
new_dict = new_dict.fromkeys(old_list) #工厂函数形成统一的键
for i in new_dict.keys():
new_list.append(i)
return new_list
5.字符串如何倒序输出
①字符串定义
str[::-1]
②列表逆序
def dx(str):
li = list(str)
li.reverse()
s = ''
for i in li:
s += i
return s
6.字符串截取函数是什么,有哪些参数,如何使用
Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是索引,从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾
7.可变和不可变的数据类型的区别是什么
可变数据类型:在内存地址不变的情况下,值可改变(列表和字典是可变类型,但是字典中的 key 值必须是不可变类型)
不可变数据类型:内存改变,值也改变。(数字,字符串,布尔类型,都是不可变类型)可以通过 id() 方法进行内存地址的检测。
8.说一下Python中变量的作用域,作用域的搜索顺序是什么样的
局部作用域>嵌套作用域>全局作用域>内置作用域
9.os模块是什么类型的模块,有哪些方法
# 内置模块
import os
os.rename()
os.mkdir()
os.chdir()
os.listdir()
os.rmdir()
os.getcwd()
os.path.isfile()
os.path.isdir()
os.remove()
10. 程序需求:输入用户名,密码,认证成功显示欢迎信息,输入错误三次后退出程序
flag = True # 跳出外层循环的标识,True不跳False跳
for i in range(3):
if flag: # 跳出外层循环的标识
user = input('>>>用户名')
password = input('>>>密码')
for u in user_list:
if user == u['user'] and password == u['password']:
print('欢迎,%s'%user)
flag = False # 跳出外层循环的标识
break
else:
print('输入第%d次错误' % (i + 1))