j题目来源:16.16.判断三角形_哔哩哔哩_bilibili
今天继续刷入门基础题
1.找完数(1000以内的)
一个数恰好等于除了它以外的因子之和就是完数
for i in range(1,1000):
sum = 0
for j in range(1,i):
if i%j == 0:
sum += j
if sum == i:
print(f"{i}是完数")
巧妙,定了一个sum,放在内层循环外面去累加因子
2.找质数因子:输入1个 正整数,输出所有的质数因子
a = int(input("请输入一个正整数: "))
y = 2 #最小的素数为2
list= []
while a != y:
if a%y == 0:
list.append(y)
a /= y #这样继续找下一个
else:
y += 1
list.append(int(a))
for i in list:
print(i,end = " ")
3.输入某年某月某日,判断这一天是这一年的第几天
时间处理模块 datetime
map函数:根据提供的函数(通过参数提供)对指定序列做映射
map(function, iterable)
import datetime
year,month,day = map(int,input().split())
yuandan = datetime.datetime(year,1,1)
now = datetime.datetime(year,month,day)
print((now-yuandan).days+1)
4.斐波那契数列
经典题目
#递归
def fib(n):
if n == 1 or n == 2:
return 1
else:
return fib(n-1)+fib(n-2)
print(fib(6))
#非递归
n = 6
fibs = [1,1]
for i in range(2,n+1):
fibs.append(fibs[i-1]+fibs[i-2])
print(fibs[n-1])
5.把一个列表数据复制到另外一个列表里
浅拷贝和深拷贝,深拷贝不会随着原来列表的变动而变动,浅拷贝会
先导入一个copy模块
import copy
list = [1,2,3,4]
list1 = copy.copy(list)#copy模块下的copy函数
list[0]
#往原来的列表里面加0,新的list1并没随之改变,就是深复制
print(list1) #[1, 2, 3, 4]
6.暂停程序后输出
想让程序暂停,需要导入一个time模块:time.sleep() #sec
import time
time.sleep(2)#暂停两秒后输出
print("hello world")
7.统计字符
输入一行字符,统计出其中的中英文字母,空格,数字,和其它字符的个数
isalpha()方法等...
string = input("请输入字符串")
char = 0
number = 0
space = 0
other = 0
for i in string:
if i.isalpha():
char += 1
elif i.isdigit():
number += 1
elif i.isspace():
space += 1
else:
other += 1
print(f"英文字母有{char}个,数字有{number},空格有{space},其他字符有{other}")
今天是16-26题,笔记如上,明天继续