
1 python 字符与数字如何转换
python中字符与数字相互转换用chr()即可。
python中的字符数字之间的转换函数
int(x [,base ]) 将x转换为一个整数
long(x [,base ]) 将x转换为一个长整数
float(x ) 将x转换到一个浮点数
plex(real [,imag ]) 创建一个复数
str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为一个元组
list(s ) 将序列 s 转换为一个列表
chr(x ) 将一个整数转换为一个字符
unichr(x ) 将一个整数转换为Unicode字符
ord(x ) 将一个字符转换为它的整数值
hex(x ) 将一个整数转换为一个十六进制字符串
oct(x ) 将一个整数转换为一个八进制字符串
chr(65)='A'
ord('A')=65
int('2')=2;
str(2)='2'
扩展资料:
python数字转换为字符串主要包括两种形式:第一种是str(),将值转换为用户便于阅读的形式;另一种是repr(),将值转换为合法的python表达式。
>>> print repr("Hello, world!")
'Hello, world!'
>>> print repr(10000L)
10000L
>>> print str("Hello, world!")
Hello, world!
>>> print str(10000L)
2 python怎么实现字符串和数字的转换
#py3
from functools import reduce
DIGITS={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
def char2num(s): #单个字符转数字
return DIGITS[s]
def str2int(s):#整数字串转化整数,不支持浮点数浮点数得另写一个
if s[0]=='-': #要判断一下该数字有没有符号
return -reduce(lambda x,y:10x+y,map(char2num,s[1::])) #返回负数
else:
return reduce(lambda x,y:10x+y,map(char2num,s)) #返回正数
a='-123'
print(100+str2int(a))
3 关于python的字符串格式化
在python中也有类似于c中的printf()的格式输出标记。
在python中格式化输出字符串使用的是%运算符,通用的形式为格式标记字符串 % 要输出的值组其中,左边部分的”格式标记字符串“可以完全和c中的一致。右边的'值组'如果有两个及以上的值则需要用小括号括起来,中间用短号隔开。
重点来看左边的部分。左边部分的最简单形式为:%cdoe其中的code有多种,不过由于在python中,所有东西都可以转换成string类型,因此,如果没有什么特殊需求完全可以全部使用'%s'来标记。
比如:'%s %s %s' % (1, 23, ['one', 'two', 'three'])它的输出为'1 23 ['one', 'two', 'three']',就是按照%左边的标记输出的。虽然第一个和第二值不是string类型,一样没有问题。
在这个过程中,当电脑发现第一个值不是%s时,会先调用整型数的函数,把第一个值也就是1转成string类型,然后再调用str()函数来输出。前面说过还有一个repr()函数,如果要用这个函数,可以用%r来标记。
除了%s外,还有很多类似的code:整型数:%d无符号整型数:%u八进制:%o十六进制:%x %X浮点数:%f科学记数法: %e %E根据数值的不同自动选择%e或%f: %g根据数值的不同自动选择%E或%f: %G就跟前面说用\进行转义一样,这里用%作为格式标记的标识,也有一个%本身应该如何输出的问题。如果要在”格式标记字符串“中输出%本身,可以用%%来表示。
上面说的只是格式标记的最简间的形式,来看复杂一点的:'%62f' % 1235在这种形式中,在f的前面出现了一个类似小数的62它表示的意思是,总共输出的长度为6个字符,其中小数2位。还有更复杂的:'%062f' % 1235在6的前面多了一个0,表示如果输出的位数不足6位就用0补足6位。
这一行的输出为'00124',可以看到小数也占用一位。类似于这里0这样的标记还有-、+。
其中,-表示左对齐,+表示在正数前面也标上+号,默认是不加的。最后来看最复杂的形式:'%(name)s:%(score)061f' %{'score':95, 'name':'newsim'}这种形式只用在要输出的内容为dictionary(一种python的数据类型)时,小括号中的(name)和(score)对应于后面的键值对中的键。
前面的例子可以看到,”格式标记字符串“中标记的顺序和"要输出的值组"中的值是一一对应的,有顺序,一对一,二对二。而在这种形式中,则不是,每个格式标记对应哪个值由小括号中的键来指定。
这行代码的输出为:'newsim:00095'。有时候在%62f这种形式中,6和2也不能事先指定,会在程序运行过程中再产生,那怎么输入呢,当然不能用%%d%df或%d%d%f。
可以用%f的形式,当然在后面的”要输出的值组“中包含那两个的值。比如:'%f' % (6, 2, 2345)就相当于'%62f' % 2345。
这是这本书到此为止看起来最复杂的内容。不过如果记不住,或不想那么耐烦,完全可以全部用%s代替,或者用多个"+"来构造类似的输出字符串。
这里的%真有点除法的味道,怪不得设计者会选择用%这个除号。象C 中的sprintf函数一样,可以用“%”来格式化字符串Table 31 字符串格式化代码格式 描述%% 百分号标记%c 字符及其ASCII码%s 字符串%d 有符号整数(十进制)%u 无符号整数(十进制)%o 无符号整数(八进制)%x 无符号整数(十六进制)%X 无符号整数(十六进制大写字符)%e 浮点数字(科学计数法)%E 浮点数字(科学计数法,用E代替e)%f 浮点数字(用小数点符号)%g 浮点数字(根据值的大小采用%e或%f)%G 浮点数字(类似于%g)%p 指针(用十六进制打印值的内存地址)%n 存储输出字符的数量放进参数列表的下一个变量中。
def f(s, c):
count = 0
while len(s) > 0:
index = sfind(c)
if index == -1:
break
count += 1
s = s[index+len(c):]
return count
def g(s, c):
cs = ""
while True:
cs += c
count = f(s, cs)
if count > 0:
print count, cs
else:
break
a="123456789011112221111111122211111111"
g(a, "1")
结果:
21 1
10 11
5 111
5 1111
2 11111
2 111111
2 1111111
2 11111111
也可以用re模块做
1、创建python文件,testregexppy文件;
2、编写代码提取字符串中的数字;
string="12abc34wf5s!@#6af7"
list_str1=refindall(r"\d",string)
list_num=''join(list_str1)
print(list_num)
3、编写代码,提取字符串中的英文字母;
#提取字符
list_str2=refindall("[a-z]",string)
list_str=''join(list_str2)
print(list_str)
4、运行代码,查看执行结果,满足所需结果;
1字典方法
2使用collections里面的Counter
当然还有很多可以统计比如某个目录下的所有目录里有的文件,有多少个名称是一样,也可以统计出来,像统计单词个数之类的都可以使用,不过使用前要先生成list
如果要统计英文字符出现的次数,可以设置一个128个元素的数组,初始化全部清零,对每一个字符出现一次,就对他相应的阿斯克码围下标的数组元素加一。等到字符串全部遍历统计以后,就可以输出每个字符出现的次数了。
#include <stdioh>
int main()
{
char str[256];
char p;
int upper = 0;
int lower = 0;
int space = 0;
int digit = 0;
int other = 0;
p = str; // P指针指向数组第一个元素 str[0]
gets(p);
while(p) // P不为空的时候继续下面du的
{
if(p>='A' && p<='Z') // 判断zhi是否为大写
{
upper++; // 统计大写字母个数
}
else if(p>='a' && p<='z') //是否为小写dao
{
lower++; //统计小写个数
}
else if(p == ' ') // 判断是否为“ ”
{
space++; //统计个数
}
else if(p>='0' && p<='9') // 判断是否为数字
{
digit++; // 统计数字个数
}
else
{
other++; //剩下的是其他字符的 统计个数
}
p++; //指针后移
}
printf("upper = %d\n",upper); // 输出
printf("lower = %d\n",lower); // 输出
printf("space = %d\n",space);// 输出
printf("digit = %d\n",digit);// 输出
printf("other = %d\n",other);// 输出
return 0;
}
扩展资料:
字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为 *** 作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
参考资料来源:百度百科-字符串
以上就是关于python怎么把字符串变成数字格式化全部的内容,包括:python怎么把字符串变成数字格式化、用python编写一个程序,能从一直字符串中查找某元素的个数。例如“123456789011112221111111122211111111"、python编写一段代码,要求用户从键盘输入一字符串,程序负责提取出其中的数字字符,并显示。 大神求教等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)