PY__03

python03

1.String字符串

1.1 字符串的格式化

s1='hello'
s2="hello"#单双引号相同

1.2 document 文档 (表示说明文档,放在开头)

三引号, 三引号包含多行字符串常量
所有行合并在一起
并在每行末尾增加一个换行符

print(__doc__)输出上面三引号里面的内容,三引号里面的内容必须放在开头

1.3 统计字符串的长度

 s2='python'
 l=len(s2)
 print(l)
 ==============
 s2[1]='i'
 print(s2)#结果出错,字符串里的元素不能别修改,
            若想改变只能再定义一个变量去接受新
            的字符串
 =====================
 print('i am "tom"')单双引号交替使用

1.4 字符串是否相等

s1='i love python'
s2=s1
s1='nonono'
print(s2)
print(s1==s2)#True
print(s1 is s2)#True
s3=s1[:]
print(s3) #nonono
print(s1==s3)#True
print(s1 is s3)#True

1.5 字符串连接

s1='py'
s2='thon'
=======================
s3=s1+s2
print(s1+s2) # python
=============================
s4=s1*5
print(s4) #pypypypypy
=============================
s5=s2+'!!'
print(s5)#thon!!  s2发生了变化,字符串里的元素不能别修改,
            若想改变只能再定义一个变量去接受新
            的字符串
print(s2)# thon

1.6 字符串格式输出

u_name='python'
u_age=20
=======================================
print('i am%s,and i am%d years old'%(u_name,u_age))
#i ampython,and i am20 years old
=============================================
print('i am%8s,and i am%d years old'%(u_name,u_age))
#i am  python,and i am20 years old  左补空格凑齐8位
===================================================
print('i am%-8s,and i am%d years old'%(u_name,u_age))
#i ampython  ,and i am20 years old 右补空格凑齐8位

2.切片

切片的格式 (起始位置:终止位置:切的方向,正反)(不包含终止位置的内容)

顺序切片

s='i love python'
print(s[2:6])  #love i为0,空格为1,l为2
print(s[11:])  #on 不写表示切到最后
print(s[-1:])  #倒着数 n为-1 o为-2 还是正着切
print(s[-6,-2])  # pyth  不包括-2
print(s1[:])#表示从最左端切到最右端 i love python

跳跃切片

s1='abcdefghi'
print(s1[::3]) #adg
for i in range(1,100,2):# 求1到100内偶数   和上面原理一样都是跳着输出
   pass

反向切

s2='abcdefghi'
print(s2[-3:2:-1]) #gfed -1表示反向
print(s2[::-1])#字符串反转
print(s2[3:7:-1])#切不到

测试

 s2='abcdefghi'
 print(s2[0:1]) #.第一个
 print(s2[-1:])#最后一个
 print(s2[4:5])#中间任何一个
 print(s2[:]) #所有
 print(s2[::2])#偶数个
 print(s2[1::2])#奇数个

demo 文章的显示…

 if len(content)>10:
     con=content[0:17]+'...'
 else:
     con=content     #简写con=content if len(content)<=10 else content[0:17]+'...'
 print(con)

3.字符编码

encode()将字符串编码转为字节码

decode()将字节码转为字符串编码

s='你好 python'
byte_s=s.encode('utf-8')#将字符串编码转为字节码
print(byte_s)
utf_s=byte_s.decode('utf-8')#将字节码转为字符串编码
print(utf_s)
===========================================
#将utf-8编码的字符串转化为GBK编码的字符串
s='你好 python'
byte_gbk_s=s.encode('GBK')
print(byte_gbk_s)
gbk_s=byte_gbk_s.decode('GBK')
print(gbk_s)

4.內建函数

count()测定字符串中的字母或单词出现几次

s1='hello world hello world'
==========================================
c1=s1.count('hello')  #测定hello出现几次
==========================================
ss1=''
for i in s1 :
    if ss1.count(i)==0:
        ss1=ss1+i
print(ss1)   # helo wrd将s1中元素不重复的存到ss1中
===========================================
max=0
ch=''
for i in s1:
    m=s1.count(i)
    if max<m:
        ch=i
        max=m
print(ch,max)       #输出s1中出现最多的字母和次数
===============================================
 s1='hello world hello world'
 print(s1.count('hello',2)) #1 从第二个元开始寻找hello出现的次数
 ========================================
 f='hello' in s1
 print(f)#True   # 查看s1中是否有hello

find() 寻找字符串中元素的位置

s1='hello world hello world'
====================
i=s1.find('hello')
print(i)  #0  所在位置
=======================
i=s1.find('hella')
print(i)#-1表示没有

replace() 替换 可以为单个字母或单词

s1='hello world hello world'
===================================
s2=s1.replace('hello','hi',1)
print(s2)   #hi world hello world 1为替换次数
===================================
s2=s1.replace('hello','hi',2)
print(s2)   #hi world hi world
=================================
s2=s1.replace('hello','hi',3)
print(s2)   #hi world hi world  3和2效果一样

split()截断

date='2018-3-1'
times=date.split('-')
print(times)      # ['2018', '3', '1'] 结果放在一个数组里面
print(times[0])   #2018
print(times[1])   #3

join() 连接 串起来

# s2='python'             #['2018','3','1']
# s3='-'
# s4=s3.join(s2)
# print(s4)#p-y-t-h-o-n   # 2018-3-1

isdigit() 判断是否为纯数字
isalpha() 判断是否为字母
isalnum() 判断是否为字母或数字

    if len(pwd)>=6 and pwd.isdigit():
     pass
=====================================
 print(pwd.isalpha())#判断是否为字母
 print(pwd.isalnum())#判断是否为字母或数字

strip()去掉左右空格

lstrip()去掉左空格

rstrip()去掉右空格

 user_id='  admin  '
 print(len(user_id))  # 9
 user_id=user_id.strip()#去掉左右空格
 user_id=user_id.lstrip()#去掉左空格
 user_id=user_id.rstrip()#去掉右空格
 print(len(user_id)) # 5

5

s='abc'
#print(dir(s))#查看s可执行的函数
help(s.split)#查看函数用法

6.list列表(数组)

6.1数组初始化

 arr=[]
 arr2=[1,2,3]
 arr3=[1,12.5,'python'] # 数组内可为不同的元素
 print(len(arr3))#len公共方法不属于数组
 ===========================================
 arr3[2]='JAVA'
 print(arr3) #[1, 12.5, 'JAVA']
               列表可变:指的是空间里的内容可变,指向 字符串不可变
arr2 = [1, 2, 3]
for i in range(len(arr2)): #range用于改变数组元素的值 长度为4-> 0,1,2,3
    arr2[i]*=2
print(arr2)

6.2 遍历数组

arr3=[1,12.5,'python']
for i in arr3:
     print(i)

找数组里的元素 切片

books=['aaa','bbb','ccc','ddd','eee']
books[0]
print(books[-1])#最后一个元素,等价于print(books[4])
books01=books[0:2]
book02=books[::-1]#反转
print(books01)

demo 分页流程

#每一页显示几本书,
page_count=2
page_index=1
m=len(books)/page_count
n=len(books)//page_count
page=n if m==n else n+1
#第一页显示的内容
books_index=books[(page_index-1)*page_count:page_index*page_count]
print(books_index)

6,3 list的操作

count统计数组中字符串出现的个数

fruits=['a','b','c']
print(fruits.count(a))

index统计数组中字符串出现的位置
reverse()反转

fruits.reverse()#可以自己反
print(fruits)
a=fruits[::-1]#只能反 给别人
print(a)

sort()排序

fruits.sort()#按字母顺序排序
print(fruits)

fruits=['a','b','c']
fruits.sort()
f=fruits
f=fruits[:]
f[0]='w'
print(f)
print(fruits)

demo

1.找出数组中元素最大和最小数并输出位置

arr=[2,1,4,5,3,6,9]
max=arr[0]#定义最大的值为数组的第一个元素 不能定义为0 因为有负数的可能
min=arr[0]#定义最小的值为数组的第一个元素  不能定义为0 因为数组里的值可能都比0大
max_index=0#定义最大值的下标为第一个
min_index=0#定义最小值的下标为第一个
a=0   #用来表示下标
b=0  #用来表示下标
for i in arr:
    if i>max:
         max=i
         max_index=a#把此时最大值的下标给max_index
    a=a+1
for m in arr:
    if m <min:
      min = m
      min_index = b#把此时最小值的下标给min_index
    b=b+1
print(max,max_index)
print(min,min_index)

注意

改变数组里元素的值
arr=[6,9,1,7,3]
for i in range(len(arr)):  #此时i为下标    #不能这样写 for i in arr :#i为数组里每个元素的值
  arr[i]*=2                                 arr[i]*=2
print(arr)#结果为12,18,2,14,6               print(arr)

2.判断密码是不是6位的全数字

pwd = input('请输入密码')
flag=True
for i in pwd:
      if   not ('0'<=i<='9'and len(pwd)==6):
        flag=False
        break
if flag:
     print(True)
else:
     print(False)
简写如下:
a=input('请输入密码')
if a.isdigit() and len(a)==6:
        print('yes')
else:
    print('no')

3.判断用户名是否全是小写字母

user_id=input('')
flag=True
for i in user_id:
    if not ('a'<=i<='z'):
        flag=False
        break
if flag:
    print('yes')
else:
    print('no')

猜你喜欢

转载自blog.csdn.net/MDZZ___/article/details/81105644
py
03