pyhton内置的数据类型(三)

一、内置数据类型的解释创建及赋值

pycharm的常用快捷键:
”ctrl +d 复制一整行“ ;
“按住ctrl 鼠标移动到查看的方法(endswith)位置,点击即可, 快速查看方法的源代码和解释说明

数据类型描述赋值小小提示
字符串 str用单引号 ’ ’ ,双引号 " “,三引号 “”” “”"引起来的字符信息str1=‘hello1’; str2=“hell2”;str3=“”“hello3"”"
数组 array存储同种数据类型的数据结构arr1=[1,2,3] ,arr2=[1.1, 2.2, 3.3]
列表 list打了激素的数组, 可以存储不同数据类型的数据结构list1=[1, 2.1, “hello”, Ture, 2e+5, [1,2,3] ]
元组 tuple带了颈箍咒的列表,和列表的唯一区别是不能增删改t1=(1, 2.4,True,2e+5,[1,2,3]) ; t2 = ( 1, )如果元组只有一个元素,一定要加逗号
集合 set不重复且无序的set1={1,2,3};ste2={3,4} ;print(“交集:” set1 & set2, “并集:” set1 | set2)交集 &,并集 |
字典 dict{“key” : “value”},键值对,通过key可以快速的找到value值user ={“name”:‘aaa’, ‘age’ : 10 } ;print(user[‘name’])

二、表示转义的符号

转义字符名称功能
\a响铃用于输出响铃
\b退格(Backspace键)用于退回一个字符
\f换页用于输出
\n换行符用于输出
\r回车符用于输出
\t水平制表符(Tab键)用于输出
\v纵向制表符用于制表
\\反斜杠字符用于表示一个反斜杠字符
\’单引号用于表示一个单引号字符
\"双引号用于表示一个双引号字符
\dddddd是ASCII码的八进制值,最多三位用于表示该ASCII码代表的字符
\xhh或\Xhhhh是ASCII码的十六进制值,最多两位用于表示该ASCII码代表最多两位的字符
实例操作
#转义字符:  \n 换行
>>> s ="hello\nweerre"
>>> print(s)
hello
weerre

#转义字符:  \t 相当于tap键
>>> s ="hello\tweerre"
>>> print(s)
hello   weerre

二、字符串的基本特性

总结:

  • 连接(+) 重复(*)
  • 成员(in,not in)
  • 索引:正向索引和反向索引
  • 切片:s[start🔚step]

pycharm常用快捷键:格式化代码符合PEP8编码风格(Ctrl + Alt + L)

1.连接操作符 “ + ” ,提示:必须是同一数据类型才能相加
>>> name = 'aaa'
>>> print("hello " + name )
hello aaa
2. 重复操作符 “ * ”
>>> print("*" * 10 + '学生管理系统' + "*"*10)
**********学生管理系统**********
3.成员操作符 “ in ”
>>> s = 'linlin linyx'
>>> print('linyx' in s)
True
>>> print('linyx' not in s)
False
4. 正向索引和反向索引

获取特定偏移的元素,0,1,2,3,4

>>> s="WESTOS"
>>> print(s[0])
W
>>> print(s[3])
T
>>> print(s[-2])
O

5. 切片
回顾旧知识:
    s = '012345'
	range(3): [0,1,2]
	range(1,4): [1,2,3]
	range(1,6,2):[1,3,5]
(1)切片的用法:切除一部分的内容
  • s[start: end:steep]
  • s[:end]:
  • s[start:]:
(2)切片用法练习
s = 'hello,westos'
>>> print(s[1:3])
el
>>> print(s[:3])
hel
>>> print(s[:5])  # 总结:s[:n] 是指拿出前n个元素
hello
>>> print(s[3:])  # 总结: s[n:] 是指除了前n个元素,其他元素保留
lo,westos
>>> print(s[:])   #总结: 拷贝字符串,从头开始访问一直到字符串结束的位置
hello,westos
>>> print(s[::-1])   #总结: 倒序输出
sotsew,olleh
6. for循环访问
s='westos'
count =0
for item in s:
	count += 1
	print(f"第{count}个字符:{item}")
7. 练习题

用户输入一个字符串,判断该字符串是否为回文字符串,例: ”aba“ ,"abba"都是回文字符串

方法一:
s=input("请输入字符串:")
s1 = s[::-1]
if s1 == s:
	print(f"{s}字符串是回文字符串")
else:
	print(f"{s}字符串不是回文字符串")
方法二:
s = input('输入字符串:')
result = ”回文字符串“  if  s == s[::-1] else "不是回文字符串"               #三元运算符
print(s + "是" + result)
#print(”回文字符串“  if  s == s[::-1] else "不是回文字符串")

三. 常用方法

总结:

  • 判断字符串的类型(isdigit ,isupper,islower,isalpha,isalnum)
  • 字符串类型的转换(lower,upper,title,swapcase)
  • 开头和结尾的判断(startswith,endswith)
  • 数据清洗和替换(strip,lstrip,rstrip,replace)
  • 分割与拼接(split,splitlines,join)
  • 位置调整(center,ljust,rjust)
1. 字符串的判断和转换
(1)字符串类型的判断,是否是字母或数字或大写…

在这里插入图片描述

s = 'HelloWESTOS'
print(s.isalnum())   #True    是否是数字或者字母
print(s.isdigit())   #False   是否是数字
print(s.isupper())   #False   是否是大写字母
(2)类型的转换,大转小写,小写转大…
>>> print("hello".upper())      	 	 #转换成大写
HELLO
>>> print("hello".lower())      	 	 #转换成小写
hello
>>> print("HellO WORld ".title())      	 #转换成标题
Hello World
>>> print("HellO WORld ".capitalize())   #转换成首字母大写
Hello world
>>> print("HellO WORld ".swapcase())     #大写换小写,小写换大写
hELLo worLD
(3)使用场景

需求:用户输入Y或者y都继续运行代码,yum install httpd

思路:
choice = input("请问是否继续安装(Y|y)")
if  choice.lower() == 'y':
	print("程序正在安装......")
2. 字符串的开头和结尾匹配
(1)判断字符串的开头(startswith)
  • 常用场景: 判断url是不是网址,http开头的网址
实例:
url = 'http://www.baidu.com'
if url.startswith('http'):
	#具体实现爬虫,感兴趣的话可以看request模块
	print(f'{url}'是一个正确的网址,可以爬取网站的代码)
(2)判断字符串的结尾(endswith)
  • 常用场景: 判断文件的类型
实例: 
filename = ‘hello.png’
if 	filename.endswith('.png'):
	print(f'{filename}是图片文件')
elif  filename.endswith('.mp3'):
	print(f'{filename}是音乐文件')
else:
	print(f'{filename}是未知文件')
3. 字符串的数字清洗,删除空格或替换
方法解释说明
strip删除字符串开头和末尾的空格(指广义的空格: \n , \t ,' ' )
lstrip删除字符串开头的空格(指广义的空格: \n , \t ,' ' )
rstrip删除字符串末尾的空格(指广义的空格: \n , \t ,' ' )
replace字符串替换。删除中间的空格,将空格替换为空
练习:
>>> "    hello   ".strip()
'hello'
>>> "    hello   ".lstrip()
'hello   '
>>> "    hello   ".rstrip()
'    hello'
>>> "    he   llo   ".replace(" ","")
'hello'
4. 字符串的位置调整,剧中或偏左或偏右…
方法解释说明
center(width)字符串居中且长度为指定宽度
ljust(width)字符串左对齐且长度为指定宽度
rjust(width)字符串右对齐且长度为指定宽度
练习:
>>> "学生管理系统".center(50)
'                      学生管理系统                      '
>>> "学生管理系统".center(50,"*")
'**********************学生管理系统**********************'
>>> "学生管理系统".ljust(50,"-")
'学生管理系统--------------------------------------------'
>>> "学生管理系统".rjust(50,"-")
'--------------------------------------------学生管理系统'
5. 字符串的搜索和统计,查找某字符出现的次数及位置…
方法解释说明
find(str,beg,end)检测str 是否包含在string中,返回str开始的索引位置。否则返回-1
index(str,beg,end)检测str 是否包含在string中,返回str开始的索引位置,否则报错(抛出异常)
count(str,beg,end)检测str 在string中出现的次数
>>> s = "hello westos"
>>> s.find("llo")
2
>>> s.index("llo")
2
>>> s.count("l")
2
6. 字符串的分离与拼接
方法说明
split(str=“”)以str为分隔符切片string,默认是空格
splitlines()以行/r为分隔符切片string,返回一个列表
join以什么为连接符将多个字符串拼接成一个字符串
(1)需求:判断ip地址的合法性
,将ip的每一位数字拿出,判断每位数字是否在0-255之间
ip ='17.25.254.100'
>>> ip.split('.')
['17', '25', '254', '100']
>>> items = ip.split('.')
>>> items
['17', '25', '254', '100']
(2)需求:将四个数字用‘ - ’拼接起来
ip ='17.25.254.100'
>>> ip.split('.')
['17', '25', '254', '100']
>>> items = ip.split('.')
>>> items
['17', '25', '254', '100']
>>> "-".join(items)    #join拼接
'17-25-254-100'
7. 练习

在这里插入图片描述

str = input("请输入正确的IP地址: ")
num = str.split(".")
for i in num:
    if  i.isdigit() == True:
        if i.startswith('0'):
            print("Nerither")
            break
        else:
            print("IPV4")
    else:
        print("ipv4地址格式错误")

8. string模块
例子: 随机生成验证码

需求:生成100个验证码:每个验证码由2个数字和2个字母组成

import random  #从某一数字中拿出一个来randmon.randint();随机拿出多个:random.sample
import string
print("从数列里面随机拿出: " + string.digits)
print("从字母列表里面随机拿出: " + string.ascii_letters)
for i in range(0,100):
print(str(i) + "随机生成的字符串: " + "".join(random.sample(string.digits, 2)) + "".join(random.sample(string.ascii_letters, 4)))

#运行结果
从数列里面随机拿出: 0123456789
从字母列表里面随机拿出: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
1随机生成的字符串: 45lktg
2随机生成的字符串: 57zdrX
3随机生成的字符串:........
.......
练习1

在这里插入图片描述

练习2

在这里插入图片描述

练习3

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值