python中(str,list,tuple)基础知识汇总

yipeiwu_com5年前Python基础

python是一门动态解释型的强类型定义语言(先编译后解释)

动态类型语言

动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来

解释型

程序每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将源代码转换成二进制代码以供执行,总言之,就是不断地解释、执行、解释、执行

强类型

一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了

优点:效率高,团队开发,移植,拓展,嵌入

缺点:速度慢,不能加密,禁止多线程并行进程

告诉解释器用什么编码执行

#!/usr/bin/env python
# -*- coding: utf-8 -*-

进制

二进制  01
八进制  01234567
十进制  0123456789
十六进制  0123456789ABCDEF

注释

#单行注释
'''多行注释'''

用户输入:input('用户输入内容')
打印屏幕  
  name = 'sunlizhao'
  print('I am %s'%(name))
  %s是字符串 %d是数字 %f是浮点型

数据类型

数字
  int(整型),long(长整形),float(浮点型),complex(负数)
布尔
  真或假, 1或0, true或false
字符串
  name = 'sunlizhao'
  print('I am %s'%(name))
  %s是字符串 %d是数字 %f是浮点型

字符串操作:

name.capitalize()       首字母大写
name.casefold()         大写全部小写
name.center(50,'-')     在name的两边输出  -  字符
name.count('s')          统计s出现的次数
name.encode()           字符编码为bytes格式
name.endswith('lz')     判断字符串是否为lz结尾
's\tlz'.expandtabs(10)    讲\t转换为多长的空格
name.find('sl')               查找sl,找到返回其索引,  找不到返回-1

format :

    >>> msg = "my name is {}, and age is {}"
    >>> msg.format("alex",22)
    'my name is alex, and age is 22'
    >>> msg = "my name is {1}, and age is {0}"
    >>> msg.format("alex",22)
    'my name is 22, and age is alex'
    >>> msg = "my name is {name}, and age is {age}"
    >>> msg.format(age=22,name="ale")
    'my name is ale, and age is 22'

format_map

    >>> msg.format_map({'name':'alex','age':22})
    'my name is alex, and age is 22'

num1 = [11,22,33]
num2 = (11,22,33)
#num3 = {'a' = 11, 'b' = 22, 'c' = 33}
 
myStr = 'hello word itcast and'
#字符串操作
print (myStr)
print(myStr.find("word"))#找不到返回-1,找到返回下标
print(myStr.rfind("itcast"))#从右面查找,返回下表
print(myStr.index('word'))#同find,找不到会出现异常
print(myStr.rindex("itcast"))#同find
 
print(myStr.count('e'))#查找出现的次数
 
print(myStr.replace('word','Word',1))#将word替换为Word(从左到右替换一个)
 
print(myStr.split(' '))#将字符串中的空格切割掉
 
print(myStr.capitalize())#字符串第一个字符大写
print(myStr.title())#首字母大写
 
print(myStr.lower())#所有大写字符转换为小写
print(myStr.upper())#所有小写字母转换为大写
 
lyric = " 想陪你一起看大海 "
print(lyric.center(50))#在50个字符中居中
print(lyric.ljust(50))#靠左
print(lyric.rjust(50))#靠右
 
print(lyric.strip())#清除左右两侧空格
print(lyric.lstrip())#清楚左侧空格
print(lyric.rstrip())#清楚右侧空格
 
print(lyric.partition("一起"))#以'一起'为中心分割成三段
print(lyric.rpartition("一起"))#从右边开始查找(元组)
 
file_name = "xxxx.txt"
print(file_name.endswith(".txt"))#判断是否是.txt为后缀
print(file_name.startswith("xxxx"))#判断是否是xxxx为开头
 
numbe = "q"
print(numbe.isalpha())#判断是否是字母
print(numbe.isdigit())#判断是否是数字
print(numbe.isalnum())#判断是否是数字或者字母
 
print(numbe.isspace())#判断是否是纯空格
 
a = ["aa","bb","cc"]
b = " "
print(" ".join(a))#将a中的字符串用b连接起来

列表,元祖操作

定义列表
  names = ['孙礼昭','slz','sunlizaho']
  下标从0开始names[0],names[1],names[2]
  倒取从-1开始 names[-1],names[-2],names[-3]
切片:取多个元素
  步长为2
  names[::2]
  如果想取到最后一个元素,不能写-1
  names[0:]
追加:
  从最后添加
  names.append('我是新来的')
插入:
  通过索引插入
  names.insert(0,'我是第一')
修改:
  通过索引修改
  names[0] = '我才是第一'
删除:
  强删list
  def names
  清空list
  names.clear()
  按照下标删除元素内容
  def names[0]
  names[0] = []
  删除指定元素
  names.remove('slz')
  删除列表最后一个值
  names.pop()
拓展:
  list1的内容添加到names的后面
  names.extend(list1)
统计:
  统计names中slz出现的次数
  names.count('slz')
排序/翻转:
  按照ascll码排序,注意py3不同数据类型不能排序
  names.sort()
  将整个list倒序(不排只倒)
  names.reverse()
获取下标:
  根据元素内容获取下标(只返回找到的第一个)
  names.index('slz')

元组:tuple一旦创建,不得修改

t = (a,b,[c,d])
tt = t[2]
tt[0] = e
tt[1] = f
print(tt)

不是说不能变吗? 现在为什么又可以变了呢!

tuple的不变是指向不变,指向的list不能变,但是里面的内容是可以更改的

相关文章

详解pandas如何去掉、过滤数据集中的某些值或者某些行?

详解pandas如何去掉、过滤数据集中的某些值或者某些行?

摘要在进行数据分析与清理中,我们可能常常需要在数据集中去掉某些异常值。具体来说,看看下面的例子。 0.导入我们需要使用的包 import pandas as pd pandas是很常...

通过Python 获取Android设备信息的轻量级框架

今天跟大家分享一下,如何通过Python实现一个轻量级的库来获取电脑上连接的Android设备信息,为什么说轻量呢因为整个库也就4KB,相比其他诸如Appetizer这样动辄就8MB多的...

Python编程之属性和方法实例详解

本文实例讲述了Python编程中属性和方法使用技巧。分享给大家供大家参考。具体分析如下: 一、属性 在python中,属性分为公有属性和私有属性,公有属性可以在类的外部调用,私有属性不...

python中print的不换行即时输出的快速解决方法

关于Python2.x和3.x带来的print不换行的问题:昨天有发过推文,利用end = 定义,解决了横向的小问题,但是由于屏幕显示的问题,若字符串长度过大,则会引起不便。两个或多个p...

OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现

OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现

一、问题 在Python里使用OpenCV时,一般是通过cv2.imread读入图片,然后用plt.imshow显示图片,但最近学习OpenCV时这样做的结果与预期的结果有较大的出入。查...