PYTHON基础
数据的基本类型
- str=‘ ’其他数据类型–>字符串
- 转换成字符:使用str函数:也可以使用引号’’or’’’
- float 0.0(浮点型)
- 转换成浮点数:文字类字符串无法转换成浮点数
- 将其他数据类型–>浮点数
- 转换成整数:int函数
- 格式符+类型码:
- %s字符串显示;%1f浮点数显示;%d整数显示
- %f的意思是格式化字符串为浮点型,%.1f的意思是格式化字符串为浮点型,并保留1位小数
- 我们看到格式符%后面有一个字母s,这是一个类型码,用来控制数据显示的类型。%s就表示先占一个字符串类型的位置
- long 51924361L(长整型[也可以代表八进制和十六进制])
- 长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字"1"混淆。Python使用"L"来显示长整型。
- 虚数 a+bj complex
- j**=-1 b*b
- complex 3.14j(复数):复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
数据拼接
- print(’1’+str(int(float(3.8))+’number’;不同数据类型的数据不能直接拼接;使用%字符
- 字符串的拼接:使用+进行字符串的拼接
- 空白:任何非打印字符,如空白、制表符和换行符。
- 制表符:\t,在字符串前加空格
- 换行符:\n,让字符串换行
- \n\t:先换行再空格
输出大小写
- name.upper()全部大写
- name.lower()全部小写
- name.title()首字母大写
取整
- 向上取整:math.cell()
- 向下取整:math.floor 整除"//"
- 四舍五除:round()–奇数远离0取整,偶数去尾取整;或奇数进位,偶数去尾。
- 向0取整:int()
去空白
- strip():除去字符串两端的空白。
- lstrip():除去字符串开头的空白。左去除left strip
- rstrip(): 除去字符串末尾的空白。右去除right strip
type(object)
- type(object)
- isinstance(object,对象类型)
运算符
- 比较运算符
- 判断value
- == 等于 != 不等于 >= <= > <
- 赋值运算符
- py的优先运算等级和外界一致:
一元运算:加+;减-;
算术运算:乘*;除/;%;
取模-返回除法的余数%;幂-返回x的y次幂**;取整除-返回商的整数部分//;/=;-=;+=;*=;**=;//=;
- py的优先运算等级和外界一致:
身份运算符
- 针对于id,地址类似于全等:is is not
成员运算符
- in in not
逻辑运算符
- not>and>or
多个条件
- 判断语句1 and 判断语句2
- 判断语句1 or 判断语句2
- not 判断语句1
copy
- 浅层 copy.copy
- 深层 copy.deepcopy
格式
- %a星期几的简写
%A 星期几的全称
%b月分的简写
%B月份的全称
%c 标准的日期的时间串
%C年份的后两位数字
%d十进制表示的每月的第几天
%D月/天/年
%e在两字符域中,十进制表示的每月的第几天
%F 年-月-日
%g年份的后两位数字,使用基于周的年
%G年分,使用基于周的年
%h简写的月份名
%H24小时制的小时
%I12小时制的小时
%j 十进制表示的每年的第几天
%m十进制表示的月份
%M十时制表示的分钟数
%n新行符
%p本地的AM或PM的等价显示
%r12小时的时间
%R 显示小时和分钟:hh:mm
%S十进制的秒数
%t水平制表符
%T显示时分秒:hh:mm:ss
%u每周的第几天,星期一为第一天 (值从0到6,星期一为0)
%U第年的第几周,把星期日做为第一天(值从0到53)
%V每年的第几周,使用基于周的年
%w十进制表示的星期几(值从0到6,星期天为0)
%W每年的第几周,把星期一做为第一天(值从0到53)
%x标准的日期串
%X标准的时间串
%y不带世纪的十进制年份(值从0到99)
%Y带世纪部分的十制年份
%z %Z 时区名称,如果不能得到时区名称则返回空字符。
dir
字符串str
-
字符串合并
- join
- print(’ '.join(list))
- print(’ '.join([str1,str2,str3])
- 去除字符串中不需要的字符
- import re
- print(’ ‘.join(re.split(’\w+’,name)))
- replace(old, new[, count]) 把字符串中old部分替换成new,替换次数不超过count次
- 字符串的拼接:使用+进行字符串的拼接;
- join
-
str.split()
- str.split(str="", num=string.count(str)).
- str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num – 分割次数。默认为 -1, 即分隔所有。
-
元素重复
- str*次数
- list*次数
-
格式化:{name:}
- %c、%0、%x、%X、%e、%E、%g、%G、%s、%f、%d
- 格式化字符
-
number1 = 26
print(“This number is %03d” % number1)
This number is 026 -
age1 = 888
print(“This number is %03d” % age1)
This number is 888 -
number2 = 26
print(“This number is %06d” % number2)
This number is 000026 -
age2 = 888888
print(“This number is %06d” % age2)
This number is 888888
-
-
格式化字符"%.2f"
- weight = 64.5
print(“His weight is %.2f kg.” % weight)
print(“His weight is %.3f kg.” % weight)
His weight is 64.50 kg.
His weight is 64.500 kg.
- weight = 64.5
-
格式化字符“%s”
- age = 26
weight = 64.5
id = 2
print(“His age is %s, weight is %.2f kg, id is %d.” % (age, weight, id))
print(“His age is %s, weight is %s kg, id is %s.” % (age, weight, id)) - His age is 26, weight is 64.50 kg, id is 2.
His age is 26, weight is 64.5 kg, id is 2.
- age = 26
-
format()
- print(’:{digit:d},:{:b},:{😮},:{:x},:{:f},:{:e},:{:%}’.format(digit=15))
- print(‘数字:{digit:d},二进制:{digit:b},十六进制:{digit:x}’.format(digit=15))
数字:15,二进制:1111,十六进制:f
- print(‘数字:{digit:d},二进制:{digit:b},十六进制:{digit:x}’.format(digit=15))
- 类型符
- a,b,F,%:前面加:或者!
- 让数值左中右对齐<^>:{name:~>int.intdata}.format(name=……)
- ‘{:15}{:>10.2f}’
- print(’:{digit:d},:{:b},:{😮},:{:x},:{:f},:{:e},:{:%}’.format(digit=15))
-
字符串大小写
- capitalize():把字符串开头第一个字符改成大写
- casefold():把整个字符串都改成小写
-
count(sub[, start[, end]])
- 返回指定字符sub出现的次数,在指定范围 内
-
字符串反转
- from functools import reduce
print(reduce(lambda x,y:y+x,name)) - print(name[::-1]
- from functools import reduce
-
字符串内唯一的元素set:
- print(’ ',join(set(name)))
- 对列表进行筛选
list1=[2,4,5,6,7,1,2]
print(list(set(list)))
-
ASCII
- ASCII 是一种字符集,包括大小写的英文字母、数字、控制字符等,它用一个字节表示,范围是 0-127
- chr()方法:将十进制数转化为基础字符
- ord():将字符转化为十进制数
-
回文字符串
- abccba
- def fun(name):
if name==name[::-1]:
print(‘yes’)
else:
print(‘no’)
- def fun(name):
- abccba
-
find(sub[, start[, end]])
- 查找字符串中是否有某个指定字符,有则 返回索引值,没有就返回-1,在指定范围 内
-
index(sub[, start[, end]])
- 不过如果指定字符不存在则会抛出一个错误
-
insert(index,object)
- 将元素添加到列表的第a个位置,原来的元素依次后移
- list.insert(len(list),object)
insert(a, )
list.insert(len(list),list.pop(0))
-
startswith() 函数 判断字符串开头
-
作用:判断字符串是否以指定字符或子字符串开头
-
语法:string.startswith(str, beg=0,end=len(string))
或string[beg:end].startswith(str)参数说明:
string: 被检测的字符串
str: 指定的字符或者子字符串。(可以使用元组,会逐一匹配)
beg: 设置字符串检测的起始位置(可选)
end: 设置字符串检测的结束位置(可选)
如果存在参数 beg 和 end,则在指定范围内检查,否则在整个字符串中检查返回值
如果检测到字符串,则返回True,否则返回False。默认空字符为True函数解析:如果字符串string是以str开始,则返回True,否则返回False
-
s = ‘hello good boy doiido’
print s.startswith(‘h’)
True
print s.startswith(‘hel’)
True
print s.startswith(‘h’,4)
False
print s.startswith(‘go’,6,8)
True
#匹配空字符集
print s.startswith(’’)
True
#匹配元组
print s.startswith((‘t’,‘b’,‘h’))
True
- os.path.commonprefix(list)
- 输入多个路径,返回最大的路径前缀。
- 可是实际上该函数与路径无关,仅仅是个字符串比较。
- 判断纯字母
- str.isalpha()
- ii. Val(C, V, Site)
- 功能为:将字符串C转换成与V相同的数值类型,并把转换后的结果赋值给V,如果字符串中有非数字,则V=0。Site用于返回非数字字符的位置。
- i. val(字符表达式)
- val()函数的功能为:将一组字符型数据的数字部分转换成相应的数值型数据
- eval(str)
- 将字符串str当成有效的表达式来求值并返回计算结果。所以,结合math当成一个计算器很好用。
- 将字符串转成相应的对象(如list、tuple、dict和string之间的转换)
class Coordinate(object):
def __init__(self,x,y):
self.x = x
self.y = y
def getX(self):
# Getter method for a Coordinate object's x coordinate.
# Getter methods are better practice than just accessing an attribute directly
return self.x
def getY(self):
# Getter method for a Coordinate object's y coordinate
return self.y
def __str__(self):
return '<' + str(self.getX()) + ',' + str(self.getY()) + '>'
def __eq__(self, other):
# First make sure `other` is of the same type
assert type(other) == type(self)
# Since `other` is the same type, test if coordinates are equal
return self.getX() == other.getX() and self.getY() == other.getY()
def __repr__(self):
return 'Coordinate(' + str(self.getX()) + ',' + str(self.getY()) + ')'
字典dict
形式
- print(list[0][1]):取出元素
进阶操作
- 1.提取dict 所有的key:dict.keys()
- 2.提取dict所有的value:dict.value()
- 3.提取dict所有的key-value:dict.items()
- 4.注:dict代表字典名,提取后的数据形式是元组,可用list()转换成列表
- 5.from collections import defaultdict :如果key不存在,自动生成一个对象作为key的value
- 6.有序dict:form collections import orderedDict
- 7.字典生序排序:pa list=list(pa.items(1) pa list.sort
- update:用自身集合与其他集合更新;
变量名(list.dict…)update(其他集合)print(自身集合)
数据修改
- 用赋值语句list[key]=value
数据增加
- 用赋值语句新增key-value
dict[key]=value
d=dict.fromkeys(range(number),value)
d=dict.fromkeys(key,value)
append.dict[key]=value
print(dict)
print([key])
dict1.update(dict2)
dict.get(key,返回值)
dict.keys()
dict.values()
dict.items()
setdefault有则查看,无则增加
数据删除
- 用del;pop(key,返回值);
pop(key);
dict.popitem():随机删除一对空字典;
clear(清空一个dict)
get
- 获取指定的key对应的value,如果key不存放回 none
循环
目标
- 可重复、自动的执行代码
循环实现方式
- 序列结构得类型
- dict
- 遍历dict_key:for…in dict:;
遍历dict_value:for…in values();
遍历dict的key-value:for…in dict.items():
- 遍历dict_key:for…in dict:;
- range()
- range(a,b,c) 函数:[取头不取尾]的整数序列
- 把一段代码固定重复n次时
就可以直接使用for i in range(n)
返回一个可迭代对象
- dict
for循环语句
- 空房间的学名叫【元素】(item),你可以把它当成是一个变量
- 遍历
while循环语句
- while 循环条件:
- 条件类型:可参考布尔值部分
- 1.值本身作为条件
2.比较运算符
3.成员运算符
4.逻辑运算符
- 1.值本身作为条件
- 与for循环的区别
- 1.for循环擅长处理固定次数,自动遍历各序列
- 2.while处理不定次数循环,条件为false便stop
循环的进阶
- break语句
- 一般写作if…:break 如果条件满足,则循环结束
- countinue语句
- 一般写作if…:countinue 无论是否进入循环,最后都会执行else语句,除非执行了break语句跳出循环。
- else语句
- pass:跳过
- 条件满足,执行一个print语句
- 计划任务
- 完成任务