pythonfor循环遍历字符串_Day3--Python--字符串,for循环,迭代

常见的基本数据类型:

1.int 整数 主要用来进行数学运算

2.bool 布尔. 判断真假. if 和 while循环中常用

3.str 字符串,一般放小量数据

4.list 列表.可以存放大量的数据,用[]表示

5.dict 字典{},以key:value的形式存储数据,查找速度快

6.set 集合(数学,集合内没有顺序,分散分布)

7.tuple 元组,用()表示 #不可变(内容不可改变)

一.int

整数:常见的操作+,-,*,/,//,%,**

bit_length() 一个数的二进制长度

a = 1 # 10进制 1 二进制 1

a = 2 # 10进制 2 二进制 10

a = 3 # 10进制 3 二进制 11

---------------------------------------------e.g.-----

a = 4

print(a.bit_length())

#结果:3 用二进制表示4是100,共3位,长度是3

二.bool

类型转换结论:

1.类型转换:想转化成XX数据类型 XX(目标)

2.True => 1 False => 0

3.可以当做False来用的数据:0,""空字符串,[]空列表{}空字典,tuple()空元组,set()空集合,None

True:除了False的都是True.

用法:

ContractedBlock.gif

ExpandedBlockStart.gif

lst = [1, 2, 3]if lst: #如果列表不为空,True,条件成立,如果为空,False,条件不成立,执行else

pass

else:pass

View Code

4.所有的空的东西都是False

-------------------True => 1------------------------

while 1: #True 1比True运行快

print('哈哈哈')

---------------------类型转换-----------------------

如果想把字符串转化成int int(str)

把int转化成str str(int)

结论: 想转化成xxx数据类型 xxx(目标)

-------------------所有的空的东西都是False---------------------------

s = "1"

if s: #True 结果为打印娃哈哈

print("娃哈哈")

s = "" #False

if s: #False 结果不打印

print("娃哈哈")

三.字符串

1.字符:单一文字符号

2.字符串:有序的字符序列

字符串是由'" ''' """ 括起来的内容

-------------------------------------------

索引:一排数字,反映第某个位置的字符.索引的下标从0开始,使用[]来获取数据

-------------------------------------------------------------

0 1 2 3 4 5 6

s = '张国荣是最帅的'

print(s[0]) #张

print(s[-1]) #倒数第一个字符 #的

--------------------------------------------

切片 s[start:end:step] 顾头不顾尾,end结束位置取不到,顺序从左往右切

第三个参数:步长 默认是1,从左往右取; 当步长为-1时从右往左取

正负代表方向,可以画数轴辨别方向

工作原理: s[start + step] # [1:8:2] 取1,3,5,7

-----------------------------------------------

s[0:3] 张国荣

s[-3:-1] 最帅 #顾头不顾尾

s[1:] 从第二个字切到结尾 #国荣是最帅的

s[:2] 从头开始切到第二个字 #张国

s[:] 从头切到尾 #张国荣是最帅的

---------------------------------------------

s[1:5:2] 从1到4,步长是2,空一个字 # 国是

s[::-1] #把字符串顺序倒过来 空代表首尾 #的帅最是荣国张

----------------------------------------------

name = "aleX leNb"

s = name[-1:-5:-1]

print(s)

#bNel

----------------------------------------------

s = input('请输入:')

s1 = s[::-1]

if s1 == s:

print('是回文')

else:

print('不是回文')

#回文e.g. 上海自来水来自海上 , 12321

小结:

切片 s[start:end:step] 顾头不顾尾,顺序从左往右切

start: 起始位置

end: 结束位置,顾头不顾尾

3.常用操作方法

#字符串是不可变的数据类型

1.upper() 转化成大写,忽略大小写的时候用

2.strip() 去掉左右两端的空格,空白; \t 表示一个制表单位 ##################

用户输入的内容都要去空白#######################################

###用户输入的内容无法保证合法,因此需要进行处理和判断

strip(XX) 也可去掉内容两端的XX

3.replace('old','new') 字符串替换

4.split() 切割 结果是 list split() 默认切割空白 即空格,\t,\n \t = tab #与join()相反 '_'.join(lst) 把列表中的元素拼接成字符串

5.startswith() 判断是否以XXX开头;endswith 判断是否以XX结尾

6.find() 查找

7.isdigit() 判断是否是数字组成

8.len() 求长度.内置函数,和print()一样用

------------------------capitalize 首字母大写---------------------------

s = "alex is not a good man! Tory is a good man"

s1 = s.capitalize() #字符串首字母大写, 其他都变成小写

print(s1)

# Alex is not a good man! tory is a good man

----------------------lower 转化成小写-----------------------------------

s = "alex is not a good man! Tory is a good man"

s1 = s.lower()

print(s1)

# alex is not a good man! tory is a good man

---------------------upper 转化成大写------------------------------------

s = "alex is not a good man! Tory is a good man"

s2 = s.upper()

print(s2)

# ALEX IS NOT A GOOD MAN! TORY IS A GOOD MAN

---------------------upper 转化成大写------------------------------------

while True:

content = input('请输入你想说的话(按Q键退出):')

if content.upper() == 'Q':

break

print(content)

------------------------swapcase 大小写互换---------------------------------

s = "alex is not a good man! Tory is a good man"

s1 = s.swapcase() # 大小写互换

print(s1)

# ALEX IS NOT A GOOD MAN! tORY IS A GOOD MAN

--------------------casefold 转换成小写-------------------------------------

# casefold() 转化成小写,不常用,但是lower有些符号无法转化时可用casefold,,尤其是东欧字母

s2 = "БBß" # 俄美德

print(s2)

print(s2.lower())

print(s2.casefold()) # 都转化成小写. 支持的文字比lower多

#БBß

#бbß

#бbss

-----------------------title 把单词的首字母大写----------------------------------

s = "class app_le bana2na_ora1nge_pear alex wusir"

s1 = s.title() # 标题.把单词的首字母大写,不管中间有没有符号或数字

print(s1)

# Class App_Le Bana2Na_Ora1Nge_Pear Alex Wusir

-------------------------center 居中--------------------------------

s = "刘伟" # 2个字符共2个单位

s1 = s.center(4,"*") # 把字符串拉长成4个单位 用*扩充

print(s1)

# *刘伟*

-------------------------strip 去空白,去空格--------------------------------

s = " \t 你好啊. 我叫赛利亚 "

print(s)

s1 = s.strip() # 去掉空白

print(s1)

# 你好啊. 我叫赛利亚

#你好啊. 我叫赛利亚

--------------------------模拟登陆-------------------------------

username = input('请输入用户名:').strip()

pwd = input('请输入密码:').strip()

if username == 'alex' and pwd == '123':

print('登陆成功')

else:

print('登录失败')

----strip(XX) 去掉内容两端的XX .lstrip()去掉左边的空格 .rstrip()去掉右边的空格----

s = "大红花很红的红"

print(s.strip("红")

#大红花很红的

--------------------------.expandtabs() 更改\t的长度-----------------------------

s6 = "alex wusir\teggon"

print(s6)

print(s6.expandtabs()) # 可以改变\t的长度, 默认长度更改为8

------------------------- replace 替换-----------------------------------------

s = '小红,小明,小白,小兰,小花'

s1 = s.replace('小白','阿绿')

print(s1)

#小红,小明,阿绿,小兰,小花

------------------------- replace 替换,按顺序替换X个---------------------------------

#将name变量对应的值中的第一个"l"替换成"p",并输出结果

name = "aleX leNb"

print(name.replace('l','p',1))

--------------------------- split() 切割 ---------------------------------------

s = '小红,小明-阿朱-小兰,小花'

s1 = s.split('阿朱') # 刀有多宽 就要损失掉多少

print(s1)

#['小红,小明-', '-小兰,小花'] 得到的是个list

-----------------------split() 切割的内容在边上-------------------------------------------

s = "周润发周星驰周笔畅周杰伦"

lst = s.split("周润发周星驰周笔畅周杰伦") # 切割的内容在边上. 会出现空字符串

print(lst)

# ['', '']

------------------------------ \n 换行 --------------------------------

print("周润发\n周星驰周笔畅周杰伦")

'''

周润发

周星驰周笔畅周杰伦

'''

--------------------------- format() 格式化输出------------------------------------

print("我叫%s, 我今年%d岁了, 我喜欢干%s" % ("alex", 18, "python"))

print("我叫{}, 我今年{}岁了, 我喜欢干{}".format("alex", 18, "python"))

print("我叫{0}, 我今年{1}岁了, 我喜欢干{2}".format("alex", 18, "python"))

print("我叫{name}, 我今年{age}岁了, 我喜欢干{hobby}".format(name="alex", age=18, hobby="python"))

#我叫alex, 我今年18岁了, 我喜欢干python

-----------------------startswith() 以()开始 和 endswith() 以()结束-------------------------------------------

s = "今天的内容非常简单.你们信吗? 作业也很容易. 就是整理不太好"

print(s.startswith("太好"))

print(s.endswith("太好"))

#False

#True

-------------------------------count() 计数-----------------------------------

s = "胡辣汤炸鸡啤酒烤鸭酱肘锅包肉炸鸡炸鸡炸鸡"

print(s.count("炸鸡")) # 计数

# 4

------------------------------ find() 搜索------------------------------------

s = "胡辣汤炸鸡啤酒烤鸭酱肘锅包肉炸鸡炸鸡炸鸡"

print(s.find("疙瘩汤")) # 如果找不到返回-1,找到则返回位置 建议用这个

# -1

------------------------------ find() 搜索------------------------------------

s = "胡辣汤炸鸡啤酒烤鸭酱肘锅包肉炸鸡炸鸡炸鸡"

print(s.find('炸鸡',9)) #设置起始索引位置

print(s.find('炸鸡',15,20)) #切片

#14

#16

--------------------------- index() 索引---------------------------------------

s = "胡辣汤炸鸡啤酒烤鸭酱肘锅包肉炸鸡炸鸡炸鸡"

print(s.index("胡辣汤")) # 如果找不到报错. 不建议用

--------------------------- isnumeric 判断是否是数字,可识别中文及大写---------------------------------------

s = "一二壹贰叁肆萬"

print(s.isnumeric())

# True

----------------------------- len() 显示字符串长度-------------------------------------

s = "我是上帝, 你也是上帝" #,后面有一个空格

print(len(s)) # 内置函数len(字符串) 返回给你字符串的长度

# 11

判断 .isalnum() 是否由数字和字母组成 .isalpha()是否由字母组成,在python中,中文也当做字母处理 .isdigit(), .isdemical(), 是否由数字组成(不包括小数点)

.isnumeric 判断是否由数字组成,可识别中文数字

4.for循环

for 变量 in 可迭代对象: #int是不可迭代对象

循环体(break, continue)

else:

当循环结束的时候执行else,如果循环被终止,不执行else.

------------------------ while循环--------------------------------

s = "朱元璋朱棣"

count = 0

while count < len(s): # 遍历字符串的第一种办法

print(s[count])

count = count + 1

------------------------- for 循环--------------------------------------------

s = "朱元璋朱棣朱建峰"

for c in s: # s只能是字符串,不能是数字

print(c)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值