Python初学--字符串
ASCII、Unicode和UTF-8的关系
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码
记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器:
-------------------------------------------------------------
字符串格式化:
name=input('请输入你的名字:')
sex=input('请输入你的性别:')
print('欢迎你:'+name) 第一种使用+号连接 建议少用
print('欢迎你:',name) 使用,号连接
print('str1 is ',str1,'str2 is',str2)
print('欢迎你%s'%name) 使用% 占位符 一般使用这个方式
print('欢迎你%s,你的性别是%s'%(name,sex)) 使用占位符%连接
(一)占位符:
%d 代表后面的变量是整数
%f 代表后面跟的是浮点 小数 %.2f保留几位小数 会四舍五入
%s 代表后面跟的是字符串
(二)如果参数少的情况下,使用占位符比较简单 如果参数多的情况下 使用.format()比较简单
age=int(input('请输入你的年龄:'))
grade=float(input('请输入你的成绩:'))
print('你的年龄{yourage},e你的成绩是{yourgrade}'.format(yourage=age,yourgrade=grade))
括号中(qianmian=shuru) 等号前面字段是自己占位时定义的字段,等号后面填的是输入的变量名
.format不能和占位符一起使用 ?不确定
使用.format时 使用了多少位小数就能保存多少位 不会四舍五入
age=int(input('输入你的分数:'))
grade=float(input('输入你的成绩:'))
print('你的成绩年龄是:%s'%age)
print('你的成绩是:%f'%grade)
print('你的年龄是:%s,你的分数是:%.2f'%(age,grade))
print('你的年龄是{you_age},你的成绩是{you_grade}'.format(you_age=age,you_grade=grade))
#总结,fomat不关注数据的类型,但%s需要关注不同的数据类型,用不同的字符来占位 如:%s %0.2f %d等等
# 数据多的时候用format 数据少可以直接用%s
----------------------------------------------------------------
字符串操作
字符串是可以通过下标来进行取值的,但是由于字符串是不可变变量,不能通过下标来修改它的值
username = 'li'
username[0]
打印内存地址
namess1=['aaa','bbb']
namess2=['aaa','bbb']
print(id(namess1))
print(id(namess2))
print(namess1 is namess2)
----------------------------------------------------------
所有字符串的方法,它都不会修改原来字符串的值,都会产生(return 返回)一个新的字符串
但列表能修改值,所以列表的方法一般不会返回值,只会直接修改,导致print 的时候需要先赋值才能打印出东西
必须要会的字符串方法
import string
print(string.ascii_letters+string.digits)#大小写字母+数字
find和index
# print(name.find('n'))#查找字符串的索引 找不到就会返回-1
# print(name.index('n'))#查找字符串的索引 找不到就会直接报错
列表和字符串都有index方法 但是列表没有find方法
format: 格式化字符串
name22='lzc'
age22=22
print('{name},{age}'.format(name=name22, age=age22))#格式化字符串
print('abA123'.isalnum()) # 是否包含数字或字母
print('122'.isdigit()) # 是否是数字
print(name.lower()) # 变成小写
print(name.upper()) # 变成大写
strnames = 'ABCEDF'
join 以指定的连接符拼接可迭代对象 返回字符串
a_list=['q','d','h','a']
print(''.join(a_list)
print('**'.join(a_list) 指定的连接符
结果:
qdha
# join是用来通过某个字符串拼接一个可迭代对象(列表,元组、字典?)的每个元素的 join只能拼接字符串类型的 int类型的是不能拼接的
strip 去掉两边的空格或者指定字符
# print('\nmysql \n'.strip()) # 默认去掉两边的空格和换行
# print('mysqlm '.strip('m'))#当你传入某个字符串的话,它就只会去掉你指定的字符串
# print('\nmysql \n'.lstrip())#默认去掉左边的空格和换行 重要
# print('\nmysql \n'.rstrip())#默认去掉右边的空格和换行 重要
replace # 替换字符串
a='hello world'
b=a.replace('world','python')
print(b)
split 以空格分割字符串,并将分割的list返回 类似与join相反
name1 = 'zcl p y zyz'
# print(name1.split())
# print(name1.split(‘,’))
#切割字符串,返回一个list,按照你指定的字符串去分隔这个字符串,然后放到一个list里面
#如果你什么都不写的话,按照空格分割,多个空格也算一个
---------------------------------------------------------
join和split的区别;
name='lzc,liushneg,liuyang'
print('split:',name.split())
name1=['yubo','hahha','hehhe']
print((',').join(name1))
结果如下:
split: ['lzc,liushneg,liuyang']
yubo,hahha,hehhe
split 是 切割字符串,返回一个列表 字符串变为列表
join 适用于列表变为字符串
--------------------------------------------------------------
其他操作:
# p = str.maketrans('abcdefg','1234567')#前面的字符串和后面的字符串做映射
# print('cc ae gg'.translate(p))#输出按照上面maketrans做映射后的字符串
# #下面是反解
# new_p = str.maketrans('1234567','abcdefg')
# print('cc ae gg'.translate(new_p))
print('1+2+3\n1+2+3+4'.splitlines())#按照换行符分割
上面那个可以用print('1+2+3\n1+2+3+4'.split('\n'))实现 不信 那你试试哈
print('Abcdef'.swapcase())#大小写反转
---------------------------------------------------------------
# 字符串格式化 4种表达方式
# 打印内存地址
#打印指定下标的元素
# 打印数据类型
# 查询列表
#查询字符串中的不存在的字符用两种方法
#查询字符串中的存在的字符用两种方法
#连接一个列表中字符(非数字 )
#拆分字符串中并返回列表
# 检验字符串中是否包含数字或字母
#检验字符串中是否是数字
# 把字符串变成大写
#把字符串变成小写
#去掉两边的空格 去掉左边的空格 去掉右边的空格
#去掉两边指定的字符 z左边的字符 右边的字符
# 替换字符串
# 前面和后面的字段做个映射
# 按照换行符分割
# 大小写反转
# 打印第三第五个字符 打印第二个以后的所有字符 打印除最后一个以外的所有字符
字符串练习题目:
-------------------------------------------------------------------------
# x = "234567ASDsdfghj" #切片和索引
# x = "hello" #显示字符串长度,注意是从1开始
# x = "hello world ASDF" #返回长度为100的字符串,并在左侧填充0
# x = "hello world ASDF" #小写变为大写
# x = "234567ASDsdfghj" #大写变为小写
# x = "234567sdfghj" #判断是否含有至少一个区分大小写的字符,并且这些都是小写
# x = "hello world" #返回标题化字符串
# x = "Hello World" #翻转字符串中的大小写
# x = " hello world " #同时执行lstrip和rstrip,删除两边
# x = "hello world" #检测是否以xx开头或结尾
# x = "234567ASDsd\nfASDghjASD" #以\n行分隔,返回一个包含元素的列表
# x = "234567ASDsdfASDghjASD" #以A分隔x,并可指定次数
# x = "234567ASDsdfASDghjASD" #替换字符串,并且可指定次数
# x = "234567ASDsdfghj" #以7为中间符,分割x
# x = "234567ASDZzsdfghj" #返回x中最大的字母(小写)
# x = "121 234567ASDsdfghj" #截掉x左边的1
# x = "234567sdfghj" #左对齐,并以*填充剩余数量(20)
x = "*" #以x为分隔符重新生成y
# x = "Asdf112321 Gh123J" #判断是否首字符为大写,其它为小写
# x = " " #判断是否只包含空格
# x = "234567f" #判断是否只包含*数字字符*
# x = "234567" #判断是否全为数字
# x = "234567sdfghj" #判断是否全为十进制数字
# x = "234567sdfghj" #判断是否全为字母
# x = "234567sdfghj" #判断是否全为字母或数字
# x = "hello world" #index同find,但查不到,会返回异常!!!
# x = "hello world" #find查找字符串并返回索引值
# x = "name:{2},age:{1},sex:{0}" #format格式化字符串
# x = "hello world" #在指定范围内,返回l的次数
# x = "hello world" #中间插入字符串,两边/填充*
http://www.cnblogs.com/LiChaoAI/p/6959607.html
作业2:
字符串 a = "aAsmr3idd4bgs7Dlsf9eAF"
1.请将 a 字符串的数字取出,并输出成一个新的字符串。
2.请统计 a 字符串出现的每个字母的出现次数(忽略大小写,a 与 A 是同一个字母),
并输出成一个字典。 例 {'a':3,'b':1}
3.请去除 a 字符串多次出现的字母,仅留最先出现的一个,大小写不敏感。例
'aAsmr3idd4bgs7Dlsf9eAF',经过去除后,输出 'asmr3id4bg7lf9e'
4.按 a 字符串中字符出现频率从高到低输出到列表,如果次数相同则按字母顺序排列。
http://blog.csdn.net/youyouheheda/article/details/51212305
Python初学--字符串的更多相关文章
- Python初学笔记之字符串
一.字符串的定义 字符串是就一堆字符,可以使用""(双引号).''(单引号)来创建. 1 one_str = "定义字符串" 字符串内容中包含引号时,可以使用转 ...
- Python格式化字符串~转
Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...
- python学习--字符串
python的字符串类型为str 定义字符串可以用 ‘abc' , "abc", '''abc''' 查看str的帮助 在python提示符里 help(str) python基于 ...
- Python格式化字符串和转义字符
地址:http://blog.chinaunix.net/uid-20794157-id-3038417.html Python格式化字符串的替代符以及含义 符 号 说 明 ...
- [转载] python 计算字符串长度
本文转载自: http://www.sharejs.com/codes/python/4843 python 计算字符串长度,一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函 ...
- Python基础-字符串格式化_百分号方式_format方式
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- python判断字符串
python判断字符串 s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小 ...
- Python格式化字符串
在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...
- python(七)字符串格式化、生成器与迭代器
字符串格式化 Python的字符串格式化有两种方式:百分号方式.format方式 1.百分号的方式 %[(name)][flags][width].[precision]typecode (name) ...
随机推荐
- [洛谷P5105]不强制在线的动态快速排序
题目大意:有一个可重集$S$,有两个操作: $1\;l\;r:$表示把$S$变为$S\cup[l,r]$ $2:$表示将$S$从小到大排序,记为$a_1,a_2,\dots,a_n$,然后求出$\bi ...
- [HNOI2007][BZOJ1185] 最小矩形覆盖 [凸包+旋转卡壳]
题面 BZOJ题面 前置芝士 建议先学习向量相关的计算几何基础 计算几何基础戳这里 思路 用这道题学习一下凸包和旋转卡壳 首先是凸包部分 凸包 求凸包用的算法是graham算法 算法流程如下: 找到$ ...
- [bzoj] 3669 NOI2014 魔法森林 || LCT
原题 copy一篇题解:原链接 将边按照a排序,然后从小到大枚举,加入图中. 在图中用lct维护一棵两点之间b最大值尽量小的生成树. 当加入一条边(u, v)时: 如果(u, v)不连通,则直接加入这 ...
- POJ2349:Arctic Network(二分+最小生成树)
Arctic Network Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 28311 Accepted: 8570 题 ...
- springMVC新理解
springmvc 中@Controller和@RestController的区别 1. Controller, RestController的共同点 都是用来表示spring某个类的是否可以接收HT ...
- librdkafka 源码分析
http://note.youdao.com/noteshare?id=c7ff510525b4dadaabb6f6a0a72040cc
- std::string在多字节字符集环境下substr的实现方法
昨天写到<使用多字节字符集的跨平台(PC.Android.IOS.WP)编码/解码方法>中提到服务端使用std::string处理字符串,std::string对多字节字符集支持并不是很完 ...
- c# 计算时间差---天数
---处理两个时间相差的天数 测试数据:三个时间 DateTime dt1 = Convert.ToDateTime("2017-03-17 09:49:55.667"); Dat ...
- Android 命名规范 (转)
刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人 ...
- PHP系统编程--01.多进程与多线程
PHP中提供了一个扩展pcntl,可以利用操作系统的fork调用来实现多进程.fork调用后执行的代码将是并行的. PHP官方没有提供多线程的扩展,pecl中有一个pthreads扩展提供了多线程的特 ...