一、 基础数据类型 总览

int:用于计算,计数,运算等。 1,2,3,100......
str:'这些内容[]'    用户少量数据的存储,便于操作。
bool: True, False,两种状态,机器反馈给用户的对,错。
list: [1,'hello', True,[],(),{} ....] 大量的数据,各种数据类型,操作方便。列表
tuple: (1,'hello', True,[],(),{} ....),只读列表。元组
dict: 字典。大量的关联型数据。
{'name':'boy','name_list':[司徒,慈禧,李莲英...],'帅哥':{'name':'帅哥','sex':男}}
set:集合。{} 关系测试。

二、 int

i = 4
print(i.bit_length()) # 查询十进制转化成二进制占用的最小位数 *

'''
十进制 二进制
1 0000 0001
2 0000 0010
3 0000 0011
4 0000 0100
....
'''

三、 bool

数据类型之间的转化。 *****
#bool ---> int                         True ---> 1          False ----> 0
a = int(True)
b = int(False)
print(a,b)

#int ---> bool                    非零即True,零即为False
c = bool(1)
d = bool(-1)
e = bool(100)
f = bool(0)
print(c,d,e,f)

#str ---> bool                  空字符串的bool为False ,非空即True(空格也是字符串,不是空)
a = bool('as')
b = bool('')
print(a,b)

例子:
name = input(">>>")
if name:
  print('666')
else:
  print('无内容')

#bool ---> str
a = str(True)
b = str(False)
print(a,b,type(a))

#int ---> str
a = str(123)
print(a,type(a))

#str ---> int                        字符串都是数字组成才能转换成int
a = int('1234')
print(a,type(a))

四、字符串常用方法

对字符串的下面这两部分操作:形成的都是一个新的字符串,与原来的字符串没有关系。
第一部分:索引切片步长。
按照索引取值,取出来的都是一个字符,形成的字符串。
索引:索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。

a = 'ABCDEFGHIJK'
print(a[0])
print(a[1])
print(a[3])
print(a[7])

切片:按切片取值,顾头不顾尾(就是包含头,不包含尾)

a = 'ABCDEFGHIJK'
print(a[2:5])
print(a[0:4])
print(a[0:-1]) #-1就是最后一个
print(a[0:]) #默认到最后

按照切片+步长

a = 'ABCDEFGHIJK'
print(a[0:5:2])
print(a[1:6:3])

如果想倒叙取值,加一个反向步长(负号)。

a = 'ABCDEFGHIJK'
print(a[-1:-5:-1])
print(a[-1:-6:-2])

第二部分:字符串的常用方法。
name = 'hello woRLd'
print(name.upper())    #upper:全大写 *****
print(name.lower())    #lower:全小写  *****
应用举例:

username = input('请输入用户名:')
code = 'ADfer'.upper()
your_code = input('请输入验证码:').upper()
print(code, your_code)
# if username == 'xiaoming' and (your_code == 'ADFER' or ..or....)
if username == 'xiaoming' and your_code == code:
print('账号密码及验证码输入正确')

#startswith:判断字符串是否以什么开头 *****
#endswith:判断字符串是否以什么结尾 *****

name = 'hello woRLd'
print(name.startswith('h')) # True
print(name.startswith('he')) # True
print(name.startswith('h',3)) # False 从索引为3(即 l )开始判断
print(name.startswith('e',1,3)) # True 从索引为1到3(即e到l )开始判断
print(name.startswith('el', 1, 5)) # True
print(name.startswith('hello woRLd')) # True
print(name.endswith('d')) # True

name = 'hello woRLd'
print(name.capitalize())  # Hello world   首字母大写 其他字母变小写 ***
print(name.center(20,'*'))  # 字符串居中,前后填充自定义的字符 **
print(name.swapcase())  # swapcase 大小写翻转 **

s1 = 'hello world*handsOMe6boy'

# title 非字母隔开的每个部分的首字母大写   其他字母变小写**
print(s1.title())  # Hello World*Handsome6Boy

name = 'hello woRLd'
find 通过元素找索引,找到第一个就返回,没有此元素则返回-1 *****
index 通过元素找索引,找到第一个就返回,没有此元素则报错 *****

print(name.find('e'))
print(name.find('l'))
print(name.find('lo'))
print(name.find('q'))
print(name.find('L',1,-1))
print(name.index('h'))

#strip 默认去除字符串前后的空格,换行符,制表符 *****

name = '\t    hello world\n'
name1 = '*xiaoming**'
name2 = 'werxiaogouwqwe'
print(name.strip())
print(name1.strip('*'))
print(name2.strip('erw')) # 可以指定字符 从左到右依次除去指定的字符
#碰到第一个不是指定的字符时停止,同时从右到左
#依次除去制定的字符,同样是碰到第一个不是指定的
#字符即停止 print(name2.lstrip('erw')) #只从左到右依次除去指定字符
print(name2.rstrip('erw')) #只从右到左依次除去指定字符

举例:

username = input('请输入用户名:').strip()   # 'xiaoming '
if username == 'xiaoming':
print('登陆成功...')

#split:将字符串分割成列表(str---> list) *****

s1 = 'hello handsome boy'
l1 = s1.split() # 默认按照空格分隔
print(l1) s2 = 'hello,handsome,boy'
print(s2.split(',')) s3 = ',hello,handsome,boy'
print(s3.split(',')) s4 = ' hello handsome boy'
print(s4.split(' ')) s5 = 'helloqhandqsomeqboy' print(s5.split('q'))
print(s5.split('q',1)) # 可设置分割次数
print(s5.rsplit('q',2)) #从右到左分割2次

# join 自定制连接符,将可迭代对象中的元素连接起来 *****

str1 = 'boy'
s2 = '*'.join(str1)
s3 = '_'.join(str1)
print(s2) print(s3)

# replace:代替 *****

msg = 'hello'
msg1 = msg.replace('l','SB')
msg2 = msg.replace('l','SB',1) #可设置替换次数
print(msg1)
print(msg2)

格式化输出:format *****

# 三种方式:
# 第一种:按顺序接收参数
s1 = '我叫{},今年{},性别{}'.format('帅哥','','男')
print(s1) # 我叫帅哥,今年18,性别男 # 第二种:按索引接收参数
s2 = '我叫{0},今年{1},性别{2},我依然叫{0}'.format('帅哥', '', '男')
print(s2) # 我叫帅哥,今年18,性别男,我依然叫帅哥 # 第三种:按关键字接收参数
s3 = '我叫{name},今年{age},性别{sex}'.format(age='', name='帅哥', sex='男')
print(s3) # 我叫帅哥,今年18,性别男

is 系列 *****

name = 'handsomeboy123'
name1 = 'a123'
print(name.isalnum()) # 判断是否由数字或字母组成
print(name1.isdigit()) # 判断全部是由整数组成
print(name1.isalpha()) # 判断是否全部由字母组成

注意(一个坑):字符串中的英文的判断isalpha(),对于unicode编码的string,
string.isalpha会根据字符串中的字符是否属于Unicode编码的LETTER区域来判断是否都由字母组成。
所以得出的结果为True,不一定表示只有26个英文字母。例如:

s = "abc中国"
print(s.isalpha()) # True # 若想判断字符串是否为英文字母:可以加上属性encode('UTF-8')
info = 'abcd'
print(info.encode('UTF-8').isalpha()) # True info = 'abcd中国'
print(info.encode('UTF-8').isalpha()) # False

扩展:判断字符串是否为中文
Unicdoe的4E00~9FFF区域表示中文,所以如果一个字符的编码在这个区间内,就说明它是中文。

def is_Chinese(word):
for ch in word:
if '\u4e00' <= ch <= '\u9fff':
print('This is Chinese')
else :
print('This is not Chinese')
s = '哈哈哈哈123'
is_Chinese(s)

公共方法
name = 'aaabcdgf'
print(name.count('a')) # 数字符串含有多少个a,有切片
print(len(name)) # 字符串的长度

五、 for循环:用户按照顺序循环可迭代对象的内容。

msg = '你好我好才是真的好'
for item in msg:
print(item) # 依次打印msg的每个字符 for item in msg:
print(msg) # 打印9次msg的全部内容(字符串长度就是次数) li = ['帅哥','美女','男神','女神','傻帽']
for i in li:
print(i) dic = {'name':'靓仔','age':18,'sex':'man'}
for k,v in dic.items():
print(k,v) msg = '你好我好'
# for else:循环正常执行完毕(没有被break或者异常),会走else代码
# 否则不走else代码
for item in msg:
print(item)
else:
print("才是真的好")

六、in与not in

in与not in:是判断某个元素是不是字符串的一部分
print('ab' in 'abvde')  # 返回True

python基础3 字符串常用方法的更多相关文章

  1. python基础(字符串常用方法)

    字符串不常用方法: 字符串常用的方法: #看源代码 按住ctrl点击方法名 用户注册的小程序 import datetimeusers = []passwds = []for i in range(3 ...

  2. python基础之字符串常用方法

    str常用命令:字符操作:.capitalize() .upper() .lower() .title() .swapcase()判断:.startwith() .endwith() .isalnum ...

  3. Python基础数据类型-字符串(string)

    Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...

  4. Python基础(二) —— 字符串、列表、字典等常用操作

    一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 二.三元运算 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为 ...

  5. python基础类型—字符串

    字符串str 用引号引起开的就是字符串(单引号,双引号,多引号) 1.字符串的索引与切片. 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推. a = 'ABCDEFGHIJK' p ...

  6. python基础、字符串和if条件语句,while循环,跳出循环、结束循环

    一:Python基础 1.文件后缀名: .py 2.Python2中读中文要在文件头写: -*-coding:utf8-*- 3.input用法      n为变量,代指某一变化的值 n = inpu ...

  7. python学习之字符串常用方法和格式化字符串

    Python中的字符串同样适用标准的序列操作(索引,分片,乘法,成员判断,求长度,取最小值和最大值),但因为字符串是不可变的,因此字符串不支持分片赋值. s='http://www.baidu.com ...

  8. Python基础__字符串拼接、格式化输出与复制

    上一节介绍了序列的一些基本操作类型,这一节针对字符串的拼接.格式化输出以及复制的等做做详细介绍.一. 字符串的拼接 a = 'I', b = 'love', c = 'Python'. 我们的目的是: ...

  9. Python基础二字符串和变量

    了解一下Python中的字符串和变量,和Java,c还是有点区别的,别的不多说,上今天学习的代码 Python中没有自增自减这一项,在转义字符那一块,\n,\r\n都是表示回车,但是对于不同的操作系统 ...

随机推荐

  1. EditText超出字数限制,给用户提示

    当我们在Editext输入内容的时候,检测如果超过限制的长度无法输入内容,并且给用户提示. 首先我想到了下面的方法: editText.addTextChangedListener(new TextW ...

  2. java之日志管理

    一. 为什么要使用日志 二. 常见日志框架介绍 三. Logback+SLF4J实战 四. 项目源码下载 五. 参考文章   一. 为什么要使用日志 1. 对IT安全至关重要   当您使用强大的日志管 ...

  3. (转)hibernateTools工具安装及使用总结(eclipse 3.6)

    最近项目采用flex+spring+hibernate的框架开发,之前虽说有多年的Java开发经验了,但是一直使用的JDBC或者 ibatis,hibernate的使用还是大姑娘上轿头一回,网上都介绍 ...

  4. ASP.NET Core 入门教程 9、ASP.NET Core 中间件(Middleware)入门

    一.前言 1.本教程主要内容 ASP.NET Core 中间件介绍 通过自定义 ASP.NET Core 中间件实现请求验签 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10 SD ...

  5. Hive之SerDe&Beeline

    一.SerDe SerDe:Serializer and Deserializer 序列化及反序列化,构建在数据存储和执行引擎之间,对两者实现解耦. Hive通过ROW FORMAT DELIMITE ...

  6. c/c++ 重载运算符 标准库function的用法

    重载运算符 标准库function的用法 问题:int(int, int)算不算一种比较通用的类型?? 比如函数: int add(int a, int b); 比如lambda:auto mod = ...

  7. Linux DNS服务配置

    主.从域名服务器配置 一.实验环境 主域名服务器:ns1.topsec.com,192.168.120.119 从域名服务器:ns2.topsec.com,192.168.120.120 二.实验步骤 ...

  8. windows 为qt5.7.1 安装openssl

    本人使用qt5.7.1+msvc2015写一个https的客户端程序,但是用到解析https协议时,报出如下错误 qt.network.ssl: QSslSocket: cannot call unr ...

  9. About Pull Strings 英语走后门议论文

    About pull strings Author : Pleiades_Antares 1. From ancient times to the present, the "going b ...

  10. nysql报错1136

    报错信息:> 1136 - Column count doesn't match value count at row 1 代码:insert into class(caption) value ...