练手加经验

 
 

每个问题都有多种解决方法,挑最简单的

发现使用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)



猜你喜欢

转载自blog.csdn.net/wanggaoxingh/article/details/80227278