from random import randint answer = randint(1,100)
作业
素数判定
1 2 3 4 5 6 7 8 9 10 11 12
from math import sqrt n=int(input('输入:')) nn=int(sqrt(n)) is_prime=True for i in range(2,nn+1): if n % i==0: is_prime=False break if is_prime and n != 1: print('%d是素数'%n) else: print('no')
#dp其实还不会 for i in range(0,21): #100全买最贵的公鸡也就20只,所以20位穷举的最大值 for j in range(0,33): for k in range(0,300): if i*5+j*3+k/3==100: print('%d只公鸡%d只母鸡%d小鸡'%(i,j,k))
def fac(num): result=1 for i in range(1,num+1): result*=i return result m=int(input('m=')) n=int(input('n=')) print(fac(m)//fac(n)//fac(m-n))
函数参数
可以像上面那样不给参数赋值,也可以赋给默认值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
from random import randint def roll(n=2): print(f'投{n}个骰子') total=0 for _ in range(n): total+=randint(1,6) return total def add(a=0,b=0,c=0): print(f'a为{a},b为{b},c为{c}') return a+b+c print(roll(randint(1,10))) print(add(1)) print(add(1,2)) print(add(1,2,3)) print(add()) print(add(c=1,a=4,b=6))
可变参数
1 2 3 4 5 6
def add(*n): total=0 for num in n: total+=num return total print(add(1,2,3,4,5,6,7,8))
模板
可以引用自带库的,也可以引用自己写的
moudle
1 2
defp(): print('hello')
m1
1 2
defp(): print('world')
test
1 2 3 4
import moudle as m2 import m1 m2.p()#moudle.p()此时已经不行了 m1.p()
或者
1 2 3 4
from moudle import p p() from m1 import p p()
作业
最大公约数和最小公倍数
1 2 3 4 5 6 7 8 9 10 11
x=int(input()) y=int(input()) defb(x,y): (x,y)=(y,x) if x>y else (x,y) for i inrange(x,0,-1): if x%i==0and y%i==0: return i print(f'{x}和{y}的最大公约数为{b(x,y)}') defp(x,y): return x*y//b(x,y) print(f'{x}和{y}的最小公倍数为{p(x,y)}')
素数
1 2 3 4 5 6 7
a=int(input('输入一个数:')) defis_prime(a): for i inrange(1,int(a**0.5+1)): if a%i==0: returnFalse returnTrueif i!=1elseFalse print(is_prime(a))
5.1
Day7
字符串
1 2 3 4 5 6
s='1234abcd' print(s[::-1])#dcba4321 print(len(s)) #len()求字符串长度 8 print('23' in s)#True print('wd' in s)#False print(s.find('a')) #4 (01234)a是4
import sys f=[i for i in range(1,10)] print(f) f=[x+y for x in'abcd'for y in'12345678'] print(f) f=[x**2for x in range(1,10)] print(sys.getsizeof(f)) print(f) f=(x**2for x in range(1,10)) print(sys.getsizeof(f)) print(f) #生成器,但没看懂 def fib(n): #用了yield关键词,所以是生成器函数 a,b=0,1 for _ in range(n): a,b=b,a+b yield a def p(n): for val in fib(n): print(val) x=int(input()) p(x)