1. 程式人生 > >學習筆記之Python 切片:利用切片操作,實現一個trim()函式,去除字串首尾的空格

學習筆記之Python 切片:利用切片操作,實現一個trim()函式,去除字串首尾的空格

需求: 

Python 切片:利用切片操作,實現一個trim()函式,去除字串首尾的空格,不呼叫str的strip()方法。

# Basic Version:
def trim(s):
    length = len(s)

    if length > 0:
        for i in range(length):
            if s[i] != ' ':
                break;
        j = length-1;
        while s[j] == ' ' and j >= i:
            j -= 1
        s = s[i:j+1]

    return s

# Improvement Recursion
def trim(s):
    if s[:1] != ' ' and s[-1:] != ' ':
        return s
    elif s[:1] == ' ':
        return trim(s[1:])
    else:
        return trim(s[:-1])

# Test:
if trim('hello  ') != 'hello':
    print('測試失敗!')
elif trim('  hello') != 'hello':
    print('測試失敗!')
elif trim('  hello  ') != 'hello':
    print('測試失敗!')
elif trim('  hello  world  ') != 'hello  world':
    print('測試失敗!')
elif trim('') != '':
    print('測試失敗!')
elif trim('    ') != '':
    print('測試失敗!')
else:
    print('測試成功!')
轉載自:http://blog.csdn.net/Daniel960601/article/details/79174915

相關推薦

學習筆記Python 切片利用切片操作實現一個trim()函式去除字串首尾空格

需求: Python 切片:利用切片操作,實現一個trim()函式,去除字串首尾的空格,不呼叫str的strip()方法。# Basic Version: def trim(s): length = len(s) if length > 0:

【廖雪峰 python教程 課後題 切片利用切片操作實現一個trim()函式去除字串首尾空格注意不要呼叫str的strip()方法

#encoding:utf-8 #定義一個函式,用來去除字串首尾的空格 def trim(s):     '''首先判斷該字串是否為空,如果為空,就返回該字串,     如果不為空的話,就判斷字串首尾字元是否為空,     如果為空,就使用遞迴再次呼叫該函式trim(),否

利用切片操作實現一個trim()函式去除字串首尾空格注意不要呼叫str的strip()方法# 測試: if trim('hello ') != 'hello': print('測試失敗!') elif trim(' hello'

def trim(s): k = 0 '''while迴圈判斷輸入字串是否為空值''' while k < len(s): if s[k] == ' ': #如果是空字元則記錄字元的個數 k = k + 1 #k自增來記錄數值

利用切片操作實現一個trim()函式去除字串首尾空格注意不要呼叫str的strip()方法

1,首先判斷字串是否是空,如果是直接返回字串; 2,迴圈判斷字串從第一個開始是否是空格,如果是則去掉空格,每次去掉空格後判斷剩下的是否是空,如果是返回字串 3,迴圈判斷字串從最後一個開始往前是否是空格,如果是則去掉空格,每次去掉空格後判斷剩下的是否是空,如果是返回字串 4,空格都去掉後返

python3利用切片操作實現一個trim()函式去除字串首尾空格

  利用切片操作,實現一個trim()函式,去除字串首尾的空格,注意不要呼叫str的strip()方法: 解決該題的思路如下: 1、判斷是否是空字串; 2、迴圈判斷字串首部第一個元素是否有空格,如果有,則去掉,再判斷是否是空字串,如果是,直接輸出; 3、迴圈判斷字串尾部

利用切片操作實現一個trim()函式去除字串首尾空格

非遞迴的方法: def trim(s): while(s[:1]==' '): s=s[1:] while(s[-1:]==' '): s=s[:-1] return s 遞迴的方法: def trim(s): if len(

Python切片 實現一個trim()函式去除字串首尾以及中間重複的空格不呼叫str的strip()方法。

# -*- coding=utf-8 -*-def trim(s):    length = len(s)    if length != 0:        if s[0] == ' ':            return trim(s[1:])        if s[

Python利用map和reduce編寫一個str2float函式字串'123.456'轉換成浮點數123.456

# -*- coding: utf-8 -*- from functools import reduce def str2float(s): def fn(x, y): return x * 10 + y def char2num(s):

python學習筆記python-nmap安裝

python首先最新的鏈接地址和《python絕技》上不同,已經修改。下載後tar,然後運行python setup.py installroot@kali:/# wget http://xael.org/pages/python-nmap-0.6.1.tar.gz--2017-03-22 13:41:38-

利用切片操作實現一個trim()函數去除字符串首尾空格註意不要調用str的strip()方法

調用 字符 去除 nbsp from urn return ret code 首先判斷字符串的長度是否為0,如果是,直接返回字符串 第二,循環判斷字符串的首部是否有空格,如果有,去掉空格,再判斷字符串的長度是否為0,如果是,直接返回字符串 第三,循環判斷字符串的尾部是否

Introduction to 3D Game Programming with DirectX 12 學習筆記 --- 第二章矩陣代數

學習目標: 理解矩陣和與它相關的運算; 理解矩陣的乘法如何被看成是線性組合; 理解單位矩陣、轉置矩陣、矩陣的行列式和逆矩陣; 熟悉DirectX Math庫中矩陣相關的類和函式; 1 矩陣的定義 一個m x n的矩陣M是一個有實陣列成的

Introduction to 3D Game Programming with DirectX 12 學習筆記 --- 第一章向量代數

學習目標: 學習如何使用幾何學和數字描述 Vector; 學習 Vector 的運算方法及其在幾何學上的應用; 熟悉在 DirectXMath library 中的 Vector 相關的類和函式。 1 向量 一個向量代表的是一個擁有大小和方向

學習筆記Python全棧開發/人工智慧公開課

Python全棧開發/人工智慧公開課_騰訊課堂 https://ke.qq.com/course/190378 資料獲取 公開資料集(Mnist),爬蟲 資料儲存 資料庫SQL 資料預處理 噪聲,重複,缺失,空值,異常值,分組,合併,隨機取樣(pandas) 資料建模、分析 找一個合適的模型

『PHP學習筆記』系列一利用for迴圈解決過路口問題

過路口問題: 假設某人有100,000現金。每經過一次路口需要進行一次交費。交費規則為當他現金大於50,000時每次需要交5%如果現金小於等於50,000時每次交5,000。請寫一程式計算此人可以經過多少次這個路口。 解題思路: 此題最重要的其實就是思路和邏輯,程式碼實現其實很簡單,這裡

『PHP學習筆記』系列四利用函式遞迴呼叫思想解決【斐波那契數列】問題和【猴子吃桃問題】問題

什麼是函式遞迴思想? 遞迴思想:把一個相對複雜的問題,轉化為一個與原問題相似的,且規模較小的問題來求解。 遞迴方法只需少量的程式就可描述出解題過程所需要的多次重複計算,大大地減少了程式的程式碼量。 但在帶來便捷的同時,也會有一些缺點,函式遞迴的執行效率不高(多次呼叫時)。

『PHP學習筆記』系列九利用from表單的onSubmit事件進行瀏覽器端的資料驗證

資料驗證思路:      當我們在網站進行註冊時,一般有兩個資料驗證的過程,一個是在伺服器端的驗證,一個是在瀏覽器端的驗證。瀏覽器端的驗證一般是用來驗證提交的資訊是否符合註冊的要求,即資料是否合法;伺服器端的驗證主要是驗證該註冊資訊是否已經存在於伺服器中,如果註

kubernetes學習筆記十一kubernetes dashboard認證及分級授權

第一章、部署dashboard 作為Kubernetes的Web使用者介面,使用者可以通過Dashboard在Kubernetes叢集中部署容器化的應用,對應用進行問題處理和管理,並對叢集本身進行管理。通過Dashboard,使用者可以檢視叢集中應用的執行情況,同時也能夠基於Dashboard建立或修

樹莓派學習筆記(7)利用bypy實現樹莓派NAS同步百度雲

樹莓派製作NAS過程詳見http://www.cnblogs.com/xiaowuyi/p/4051238.html。 Bypy是一個百度雲/百度網盤的Python客戶端,主要的目的就是在Linux環境下(命令列)同步百度雲盤空間。Bypy要求python2.7

基礎學習筆記opencv(7)ubuntu下opencv在Qt中的使用

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QtGui/QMainWindow>#include <QFileDialog>#include <opencv2/highgui/highgui.hpp&g

《Kotlin實戰》學習筆記第二章Kotlin基礎

一、基本要素:函式和變數 1、Hello,world fun main(args: Array<Stirng>) { println("Hello, world!") } 關鍵字