码迷,mamicode.com
首页 > 编程语言 > 详细

想计算机科学家一样思考python(3)

时间:2018-07-23 19:50:11      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:python   除法   strip   lse   ext   style   思考   代码   pen   

第五章 条件和递归

“//”代表向下取整除法

“%”求模操作符

 

判断互文的代码:

# -*- coding: utf-8 -*-

def first(word):

    return word[0]

def last(word):

    return word[-1]

def middle(word):

    return word[1:-1]

def huwen(word):

    if len(word)<=1:

        return True

    if first(word)!=last(word):

        return False

    else:

        return huwen(middle(word))

print(huwen(‘a‘))

print(huwen(afbhj))

print(huwen(adhsuia))

print(huwen(heeh))

 

def huwen(word1,word2):

    if len(word1) != len(word2):

        return False

    i=0

    j=len(word2)-1

    while j>0:

        if word1[i]!=word2[j]:

            return False

        i+=1

        j-=1

    return True

print(huwen(hkl, lkh))

 

def is_huwen(word):

    i=0

    j=len(word)-1

    while i<=j:

        if word[i]!=word[j]:

            return False

        i+=1

        j-=1

    return True

print(is_huwen(guug))

 

 

 

epsilon=0.0000001

 

 

用python写下面式子代码

 

# -*- coding:utf-8 -*-

import math

def jiecheng(n):

    if n==0:

        return 1

    else:

        b=jiecheng(n-1)

        c=n*jiecheng(n-1)

        return c

 

def estimatepi():

    d=(2*math.sqrt(2))/9801

    k=0

    total=0

    while True:

        e=(jiecheng(4*k))*(1103+26390*k)

        f=(jiecheng(k))**4

        g=f*(396**(4*k))

        total1=d*e/g

        total+=total1

        if abs(total1)<1e-15:

            break

        k+=1

    return 1/total

print(estimatepi())

 

两种遍历字符串的方法

 

Find用法

# -*- coding: utf-8 -*-

word=‘banana‘

print(word.find(na))#2  找第一次遇到字符串时的下标

print(word.find(na,3))#4  表示从哪一个下标开始查找

print(word.find(‘a‘,0,1))#-1 表示从哪个小标开始查找到哪个下表结束

 

 

找具有三个重复字母的单词

# -*- coding:utf-8 -*-

def liayiyang(word):

    count=0

    i=0

    while i<len(word)-1:

        if word[i]==word[i+1]:

            count+=1

            if count==3:

                return True

            i=i+2

        else:

            count=0

            i=i+1           

    return False

def wenjian():

    fin = open(‘C:\\Users\\chenxi\\Desktop\\words.txt‘)

    for line in fin:

        word=line.strip()

        if liayiyang(word):

            print(word) 

wenjian()

 

技术分享图片

想计算机科学家一样思考python(3)

标签:python   除法   strip   lse   ext   style   思考   代码   pen   

原文地址:https://www.cnblogs.com/beautifulchenxi/p/9356354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!