Python中如何从键盘中输入字符串,统计字符串中每个字符出现的次数母,数字,符号和空格的个数?

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符.

# Python 中的变量赋值不需要类型声明。
# 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
# 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
# 等号(=)用来给变量赋值。
# 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u。

Python的字符串内建函数

Python的字符串常用内建函数如下:

将字符串的第一个字符转换为大写
返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
跟find()方法一样,只不过如果str不在字符串中会报一个异常.
如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
如果字符串只包含数字则返回 True 否则返回 False..
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
如果字符串中只包含数字字符,则返回 True,否则返回 False
如果字符串中只包含空白,则返回 True,否则返回 False.
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
转换字符串中所有大写字符为小写.
截掉字符串左边的空格或指定字符。
创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
返回字符串 str 中最大的字母。
返回字符串 str 中最小的字母。
类似于 find()函数,不过是从右边开始查找.
类似于 index(),不过是从右边开始.
返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
删除字符串字符串末尾的空格.
有指定值,则仅截取 num+1 个子字符串
False,不包含换行符,如果为 True,则保留换行符。
检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
将字符串中大写转换为小写,小写转换为大写
返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到
转换字符串中的小写字母为大写
返回长度为 width 的字符串,原字符串右对齐,前面填充0
检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表用 [ ] 标识,是 python 最通用的复合数据类型。

列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

# 注意: 后面的例子都是以这里的变量为模板

与字符串的索引一样,列表索引从0开始,列表可以进行截取、组合等

使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:

# 以上实例输出结果为: # 以上实例输出结果为:

可以使用del 语句来删除列表的元素,如下实例

# 以上实例输出结果为 # 当然,也可以使用remove()方法删除

Python列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

Python列表的截取与拼接及嵌套列表

Python的列表截取与字符串操作类型,如下所示

# 以上实例输出结果为 # 以上实例输出结果为:

加号 + 是列表连接运算符,星号* 是重复操作,如下实例:

# 以上实例输出结果:

列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。例如:

也可以把列表当做队列用,只是在队列里第一加入的元素,第一个取出来;但是拿列表用作这样的目的效率不高。在列表的最后添加或者弹出元素速度快,然而在列表里插入或者从头部弹出速度却不快(因为所有其他的元素都得一个一个地移动)。

列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。

每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号。

这里我们将列表中每个数值乘三,获得一个新的列表:

# 我们还可以对他进行幂计算: # 可以对之前同样序列每一个元素逐个调用某方法: # 我们还可以使用if子句作为过滤器: # 以下是一些关于循环和其他技巧的演示: # 列表推导式可以使用复杂表达式或嵌套函数:

Python的列表还可以嵌套
以下实例展示了3X4的矩阵列表

# 以下实例将3X4的矩阵列表转换为4X3列表 # 以下实例也可以使用以下方法实现:

元组是另一个数据类型,类似于List(列表)
元组用()标识,内部元素用逗号隔开,但使元组不能二次赋值,相当于只读列表
元组是不允许更新的,而列表是允许更新的
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可

# 元组与字符串类似,下标索引从0开始,可以进行截取,组合等.

元组可以使用下标索引来访问元组中的值,如下实例

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例

元组中的元素是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例

# 以上实例元组被删除后,输出变量会有异常信息,输出如下所示:

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:元组:

反向读取;读取倒数第二个元素
截取元素,从第二个开始后的所有元素。

Python3元组包含了以下内置函数

所谓元组的不可变指的是元组所指向的内存中的地址地址值不同.

不可变并不是坏事,比如我们把数据传给一个不了解的API时,可以确保我们的数据不会被修改。同样地,如果我们操作一个从函数返回的元组,可以通过内建List()函数把它转换成一个列表。

字典是另一种可变容器模型,且可存储任意类型对象
字典的每个键值(key=> value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号中({}),格式如下所示:
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

# 以下为实例输出结果

能删单一的元素也能清空字典,清空只需一项操作
显示删除一个字典用del命令,如下实例:

# 此时运行以上实例会报错,引发一个异常,因为用执行del操作后字典不再存在:

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

# 以上实例输出结果为

2) 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

# 以上实例输出结果:

字典内置函数&方法

Python包含了以下内置函数:

len(dict) 计算字典元素个数,即键的总数。
str(dict) 输出字典,以可打印的字符串表示。
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。

Python字典包含了以下内置方法:

集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

# 以上实例输出结果为 # 下面展示两个集合间的运算 # 下面为实例的输出结果

将元素x添加到a集合中

将元素x从集合a中移出去,如果不存在就会报错

计算集合元素个数和清空集合

# 判断元素是否在集合中存在

在字典中遍历时,关键字和对应的值可以使用items()方法同时解读出来:

# 如果要反向遍历一个序列,首先指定这个序列,然后调用reversed()函数: # 按顺序遍历一个序列,使用sorted()函数返回一个已排序的序列,并不修改原值:

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值.

将对象 x 转换为字符串
将对象 x 转换为表达式字符串
用来计算在字符串中的有效Python表达式,并返回一个对象
将序列 s 转换为一个元组
将序列 s 转换为一个列表
创建一个字典。d 必须是一个序列 (key,value)元组。
将一个整数转换为一个字符
将一个整数转换为Unicode字符
将一个字符转换为它的整数值
将一个整数转换为一个十六进制字符串
将一个整数转换为一个八进制字符串
* 变量无须事先声明,也不需要指定类型
* 编程中一般无须关心变量的存亡,也不用关心内存的管理
* Python使用引用计数记录所有变量的引用数.(引用计数器,垃圾回收机制)
 * 当变量引用数变为0,他就可以被垃圾回收GC
 * 计数增加: 赋值给其他变量就增加引用计数,例如x=3,y=x
 * 函数运行结束时,局部变量会被自动销毁,对象引用计数减少
 * 有关性能的问题,需要考虑变量的引用问题,但是该释放内存,还是尽量不释放内存,看需求.

我要回帖

更多关于 统计字符串中每个字符出现的次数 的文章

 

随机推荐