每个问题都有多种解决方法,挑最简单的
发现使用3个变量感觉就变得比较复杂,如果用列表,可用使用列表存储数据,也容易理解
1、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
程序分析:请抓住分子与分母的变化规律。
a = 1;b = 2;c= 0 l=[] for i in range(20): l.append(b/a) c = b #增加了一个变量c用来存储b,不然容器不够用,是不是两个函数换算经常需要3个变量??? b = a +b a = c print(sum(l)) ****************************方法二 a = 1;b = 2 l = [] for i in range(20): l.append(b/a) a,b = b,b+a #python特性,变得更简单 print(sum(l)) >>>32.66026079864164
'''' 求1+2!+3!+...+20!的和。 ''' #下面这个使用列表比较容易理解,对多个变量,while函数,感觉不太拿手 s = 1 t = [] for i in range(1,21): s *= i t.append(s) print(sum(t)) sum1=0 for each in range(1,21): sum2=1 while each>1: sum2=sum2*each each-=1 sum1+=sum2 print(sum1)
使用递归感觉就是一种隐藏着的循环(不断调用函数本身),知道公式,知道最后一个值就好写了
''' 利用递归方法求5! ''' def f(n): if n==1: fn = 1 else: fn = n *f(n-1) return fn print(f(5))
'''
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
'''
#思路,反序保存到另一个变量,然后两个变量看是否相等这个完全就是程序员思路了,数学思路就是第一个数和最后一个数单独拿出来比对,要的是思路。。。。
d1 = input('输入5位数字:')
d2 = d1[::-1]
print(d1)
print(d2)
if d1 == d2:
print('是回文')
else:
print('不是huiwen')
***********************************************
网页定位不到元素解决办法
https://www.cnblogs.com/liyuhang/p/6661835.html
driver = webdriver.Firefox() driver.get('http://www.126.com') time.sleep(5) #看frame的id或name,其中一个输入就行,页面多个frame会定位不到该元素,没id,name則先定位class driver.switch_to_frame('x-URS-iframe') driver.find_element_by_name('email').click() driver.find_element_by_name('email').send_keys('555') time.sleep(6)