如何学python-第三课 基础字符串操作

在上一篇文章中,我们学习了有关变量和输出的一些基础知识。大家应该还记得在上一篇文章中出现的字符串类型(string)吧!说白了,string类型其实就是一堆单词的集合;把这些单词放在两个英文双引号之间,python就会把它识别为字符串类型。另外,python对大小写敏感,这意味着”Null-Byte”和”null-byte”是完全不同的两个东西。

为什么需要处理字符串

Python程序在接收用户的输入时,会默认把用户的输入当作字符串类型。所以,当我们对这些输入的数据进行操时,可能需要先进行一些处理。就像前面说的,如果我们每次都需要判断用户输入的到底是大写还是小写以及究竟如何处理,将会很麻烦。幸运的是,经过字符串操作,我们可以轻松处理这类问题。

方法/模式(Method)

其实模式(method)和方法(function)是有区别的。初学者姑且理解其为完成特定动作集合的一个神奇的指令就行。译者注

方法是python语言本身做好的一些指令,可以帮助我们方便的完成一些特定的任务。举例来说,假设我们不知道用户到底要输入的是大写还是小写,我们就可以用特定的‘方法’对字符串进行操作,把他们qu。方法的调用方式是在变量名称后面加上一个英文句号再加上具体的方法名,语法如下:

(VARIABLE NAME).method()

变量名.方法名()

就是这么简单。想必你也注意到了在方法末尾的括号了吧,没错,方法是可以接收参数的(参数就是其他的变量,具体传什么参数取决于你正在调用什么方法译者注),我们待会儿会做演示。

基础字符串操作方法

今天我们来介绍三个十分常用的字符串操作方法:

  • .upper()
  • .lower()
  • .split()

.upper()和.lower()方法的功能很类似,他们分别会把你输入的字符串类型变量转化成全部大写或者全部小写。下面是我们的测试语句与返回结果:

我们把变量test赋值为”Null-Byte”。然后在变量的后面加上英文句号和想要调用的方法名即可,我们先来试试.upper():

.lower():

我们可以看到,调用(call)test.lower()返回的结果与调用test.upper()得到的结果恰好相反。

下面我们来试试.split()方法。它跟上面两个不太一样,split()并不把字符串转换成任何东西;它把他们切分(split)开。

提示

python有一种可以把一堆同类型变量捆在一起使用的变量类型,这种类型被叫做list(列表)类型。在以后的文章里,我们会更经常的使用这种类型,但现在我们不准备进行更深入的讨论,你只需要知道一个列表类型是多个变量打包在一起的,就足够了。

.split()方法会把你给它的任何变量撕成一个列表。如果不带参数,它默认会以空格” ”作为切分标记。但是,如果我们给它传递一个string类型的参数,它就会转而以哪个string类型的参数为切分标记。先让我们试试默认的不带参数的split()方法吧:

由于”Null-Byte”字符串本身根本就没有空白格,所以它也不会被撕开。这么做之后的效果仅仅是整个字符串被放在了列表下面。

现在,再让我们试试传个参数进去,看看能不能把它切成”Null”和”Byte”:

我们可以看到,通过传入一个连字符”-”,我们成功的达到了把原先字符切成”Null”和”Byte”的目的,因为”-”就在Null和Byte中间。

好了,通过以上的这些练习,我们已经掌握了一些基本的字符串操作方法。我们会在下一节课中用这些方法来处理用户的输入。尽可能多的做些实验吧。

练习

创建你自己的实验变量,复现我们今天讲过的内容。你也可以在评论区里贴上你的实验结果,如果你乐意的话。

======================================================================

原文系列链接:http://null-byte.wonderhowto.com/how-to/python-training/

原文发布于微信公众号 - 玄魂工作室(xuanhun521)

原文发表时间:2016-07-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构说

实现多态必须满足什么条件

3 虚函数机制 virtual mechanism 先看代码: class A { public: virtual void print() { cout...

2797
来自专栏www.96php.cn

PHP关键字、PHP 语言结构(Language constructs)和函数的区别

1、 什么是语言结构和函数 语言结构: 就是PHP语言的关键词,语言语法的一部分; 它不可以被用户定义或者添加到语言扩展或者库中; ...

3879
来自专栏前端大白专栏

ES6 async-await函数记录

2022
来自专栏java一日一条

基础类型转化成String

在程序中你可能时常会需要将别的类型转化成String,有时候可能是一些基础类型的值。在拼接字符串的时候,如果你有两个或者多个基础类型的值需要放到前面,你需要显式...

852
来自专栏java一日一条

为什么Java字符串是不可变对象?

本文主要来介绍一下Java中的不可变对象,以及Java中String类的不可变性,那么为什么Java的String类是不可变对象?让我们一起来分析一下。

812
来自专栏java一日一条

Java字符串之性能优化

在程序中你可能时常会需要将别的类型转化成String,有时候可能是一些基础类型的值。在拼接字符串的时候,如果你有两个或者多个基础类型的值需要放到前面,你需要显式...

862
来自专栏JAVA高级架构

Java面试题合集

1.抽象类与接口的区别是什么? 一个类可以实现多个接口,但是只能继承以及抽象类。类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声...

36810
来自专栏Java成神之路

PHP中 对象自动调用的方法:__set()、__get()、__tostring()

 (1)__get($property_name):获取私有属性$name值时,此对象会自动调用该方法,将属性name值传给参数$property_name,通...

1034
来自专栏开发与安全

C++中四种类型转换以及const_cast是否能改变常量的问题

we have four specific casting operators:dynamic_cast, reinterpret_cast, static_c...

21510
来自专栏everhad

札记:Java异常处理

异常概述 程序在运行中总会面临一些“意外”情况,良好的代码需要对它们进行预防和处理。大致来说,这些意外情况分三类: 交互输入 用户以非预期的方式使用程序,比如...

2368

扫码关注云+社区

领取腾讯云代金券