python学习第三天

时间:2021-12-16 20:52:45

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())
  

三 、列表我还没有了解明天补上