python学习第三天
首先把昨天欠下补上:
for 循环
python中for循环可以循环任何序列的项目,如一个列表或者一个字符串
可循环一个列表中的每一个元素
语法:
lb = 'asdasd' for a in lb: print(a)
输入的结果:
a s d a s d
for可以不依赖于索引取指,是一种通用的循环取指方式
for的循环次数是由被循环对象包含值的个数决定的,而while的循环次数是由条件决定
for循环也可以按照索引取值
实例
for i in range(0,5): # range 顾头不顾尾 range的意思的取范围 range(0,5)的意思是取0、1、2、3、4 因为是顾头不顾尾所以5没有 print(i)
for循环按照索引取值:
name_list = ['nick', 'jason', 'tank', 'sean'] for name in name_list: if name == 'tank': break print(name)
今天的课程:
一、整型与浮点型
二、字符串类型
三、列表类型(列表类型的没有全部整明白,只好明天再补齐)
一、整型 int
整型是一个值 有序的 :因为int类型可以被索引 数据类型不可变
数据可不可变分两类:
a、可变类型:值改变的情况下,id不变,说明改的是原值
b、不可变类型:值改变的情况下,id变
整型的基本使用:手机号码 qq号码 等..
定义的方式:
age = 25 # age = int(25) print(age,type(age))
其他类型强制转换int类型:
只有纯数字的字符串可以转换,但是有小数点是不能转换的因为int类型是整数是不识别小数点的
浮点型和整数类型一样因为两个都属于Number类型,除了强制转换可以转换小数点以为和整型一样
二、字符串类型:
字符串是python中最常见的数据类型。我们可以用单引号 双引号 三双引号来创建字符串 字符串类型是可以被索引的所以字符串类型是有序类型 字符串的用途是描述性的
定义方式:
shili = '我的第一个字符串示例' print(sshili)
1.字符串可以索引取值(正反取值)可以改但是不能存
s = 'hello big baby'
print(s[0])
s[0] = 'j' # 列表中索引取值只可以取不可以改
2.切片取值,什么是切片取值呢? 切片取值是从一个大的字符里面提取一段新小的字符串(切片取值个ange一样顾头不顾尾)
s = 'hello big baby' print(s[0:10]) #步长没有写时代表是步长为 1 print(s[0:10:3]) # 步长表示隔几个取一个
3、长度len:统计的是字符串中的字符的个数
s1 = ' ' print(len(s1))
4、成员运算in和not in: 判断一个子字符串是否存在于一个大的字符串中
l = 'ai wei da li mian de yuan gong you : zhang yu long '
if 'zhang1' not in l :
print('000')
elif 'yu' in l :
print('long')
5\ strip去掉字符串前后两边的空格,不管中间的只取两端的空格
strip()默认去除字符串首尾的空格 ;使用内置的方法统一采用 句点符(.)
strip的意思是去掉 lstrip 是去掉左边的空格 rstrip 是去除右边的空格
name1 = 'yl' name2 = ' yl '.strip() print(name1 == name2)
示例2:
name3 = '$$$$$$jinyan******'
print(name3.strip('$*')) # 去除收尾的字符
示例:
username = input(">>>>:").strip() #自动识别输入的是字符串可以直接加strip() 从而去除首位空格
if username == 'laonanhai':
print('goog job')
示例去除左边右边:
name4 = '&&&&zhang%%%%%'
print(name4.rstrip('%')) # rstrip() right 右边
print(name4,lstrip('&')) # lstrip() lrft 左边
6、切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值
split 意思是分隔或者分切 ;split()分切是从左到右切; 强调使用split()分切出来的数据是列表类型
如果不指定切割的个数 split 和rsplit是一样的ps因为是从内部切割,所以我们不知道
i = 'mx|big|b2' print(i.split('|')) name, daxiao,age = i.split('|') print(name,daxiao, age) print(i.split('b',1)) # split是从左向右切 print(i.rsplit('b',1)) # rsplit()是从右向左切
7、循环 for in
data = 'sdasfsddasdasdas' for i in data: print(i)
2.lower和upper
lower是转小写
upper是转大写
s = 'zHanG' print(s.lower()) # 转小写 print(s) print(s.upper()) # 转大写 print(s)
3.startswith 和 endswith
startswith 是判断是不是以什么开头的
endswith 是判读是不是以什么结尾的
if s1.startswith('z'): print('首部位检测通过!') else: print('首部为检测为通过') if s1.endswith('e'): print('末尾检测通过') else: print('末位检测未通过')
4.字符串的替换 format
第一种按位置占位 和%s的原理一样 python推荐使用
示例:
str1 = 'my name is {} my age is {}'.format('yl',18) print(str1)
第二种找索引占位
str1 = 'my name is {1} my age is {0}'.format('yl',18) str1 = 'my na{0}me{1} is {3} my a{2}ge is {4}'.format('yl',18,'zz',56,2) print(str1)
第三种 指名道姓的占位,也就是关键字占位
str1 = 'my na{yu}me{age} is {yu} my a{yu}ge is {yu}'.format(yu = 'long',age=18) print(str1)
5.拼接 join
将容器类型中的多个元素通过指定字符拼接成一个字符串
i = ‘jon|123|zb’ res_list = i.split('|') # 分隔成列表 res_str = '¥'.join(res_list) print(res_str)
6.replace 更换
更换列表里面的元素
str = 'egon is dsb and egon is sb he has a BENZ' res = str.replace('egon','kevin',1) print(res) print(str) str = 'yu i xsg and yu is nq he have a mm' # 声明一个str 列表 res = str.replace('yu','zhang',2) #声明一个新的列表使用 replace()替换原来的字符串中数据。 print(res) # 打印新的字符串 print(str) # 打印老的字符串,老字符串依旧没有变
8、isdigit用来判断字符中是否为纯数字
age = input('>>>>:') if age.isdigit(): age = int(age) if age < 23: print('小妹妹好') break else: print('老阿姨') break else: print('请好好输入')
需要了解的内置方法
find 查找 ;rfind;index 索引 ; rindex; count计数
s = 'kevin is dsb o and kevin is sb' print(s.find('dsb')) # 返回的是d字符所在的索引值 print(s.find('xxx')) # 找不到的时候不报错返回的是-1 print(s.find('i',0,7)) # 还可以通过索引来限制查找范围 索引的范围是顾头不顾尾 ***找到第一个后则终止并返回查找值的索引位置 print(s.index('o')) # 返回所传字符所在的索引值 print(s.index('i',0,3)) # 返回所传字符所在的索引值 #会报错 print(s.count('n')) # 统计字符出现的次数
2;center 意思是中间 如:本来的字符串只有4位我们想打出10位的结果而且还要四位居中就可以用center
ljust和rjust的意思刚好相反,一个是在左边一个是在右边补齐
3.expandtabs 扩大 tab键
s10 = 'a\tbc' print(s10.expandtabs(100)) s5 = 'a\tnu' print(s5.expandtabs(12))
4,coptalize ; swapcase ; title
coptalize首字母大写
swapcase 大小写互换
title 每个单词的首字母大写
s122 = 'GOkon hjJKO nHk' print(s122.capitalize()) # 字符串的首字母大写 print(s122.swapcase()) # 大小写互换 print(s122.title()) # 首字母大写
5.is 数字系列
num1=b'4' #bytes num2=u'4' #unicode,python3中无需加u就是unicode num3='壹' #中文数字 num4='Ⅳ' #罗马数字 # ''.isnumeric(): unicode,中文数字,罗马数字 只要是表示数字都识别 # print(num1.isnumeric()) #报错 print(num2.isnumeric()) print(num3.isnumeric()) print(num4.isnumeric()) # # ''.isdecimal(): unicode 只识别普通的阿拉伯数字 print(num2.isdecimal()) print(num3.isdecimal()) print(num4.isdecimal()) # # ''.isdigit() :bytes,unicode 通常情况下使用isdigit就已经满足需求了 print(num1.isdigit()) print(num2.isdigit()) print(num3.isdigit()) print(num4.isdigit())
三 、列表我还没有了解明天补上