Python开发IDE
PyCharm,eclipse
PyCharm的基础用法
全部选中后 Ctrl+?全部变为注释
运算符
结果为值的运算符
算术运算符:
+ - * / % // **
赋值运算符:
count = count + 1 <==> count += 1
count = count - 1<==> count -= 1
count = count * 1<==> count *= 1
count = count / 1<==> count /= 1
......
结果为布尔值的运算
比较运算:
==等于 >大于 <小于 >=大于等于 <=小于等于 != <> 不等于
成员运算:
in和not in:判断某个东西是否包含在某个东西里面(判断子字符串(子序列)是否在字符串中),结果是布尔值
name = 'Jennifer' """ 'Jennifer'字符串 其中单个J字符 但是'J'是由单个字符构成的字符串 """ if 'J' in name: print('Yes') else: print("no")
逻辑运算:
not 取反 and且 or或
运算的顺序:
先计算括号内
再从前到后
True+or→True
True+and→继续判断
False+or→继续判断
True+and→False
数据类型
数字
#Python3中,不管多少位数字、多大值都是int类型
#Python2中,整型int类型和长整型long类型
所有功能都在int里。 输入int,选中后按住Ctrl键即可查看
int(a,base=b)
将字符串以b进制的数字转换为10进制.
a.bit_length()
将这个数转换为2进制表示的最少位数
布尔值
bool
字符串
str类型,一旦创建不可修改,一旦修改或拼接,都会重新生成新的字符串
.replace()
按照设置进行指定的替换
1 m = "abcabcabc" 2 m1 = m.replace("ab","12") 3 m2 = m.replace("ab","12",2) 4 print(m1,m2) 5 """ 6 12c12c12c 12c12cabc 7 """
.capitalize()
首字母大写
.casefold() 或者 .lower()
变小写,但前者功能更全面,后者有局限性
.center(self, width, fillchar=None)
设置宽度,并将内容居中
fillchar=None,说明可以不用填,默认“None”
width说明必须填写
1 e = 'abcd' 2 e1 = e.center(20,"*") 3 print(e,e1) 4 #abcd ********abcd********
.ljustr(self, width, fillchar=None)
设置宽度,并将内容至于最左
1 e = 'abcd' 2 e2 = e.ljust(20,"%") 3 print(e,e2) 4 #abcd abcd%%%%%%%%%%%%%%%%
.rjustr(self, width, fillchar=None)
设置宽度,并将内容至于最右
e = 'abcd' e3 = e.rjust(20,"^") print(e,e3) #abcd ^^^^^^^^^^^^^^^^abcd
.zfill()
设置宽度,内容置于最右,并用0填充
1 e = 'abcd' 2 e4 = e.zfill(20) 3 print(e4) 4 #0000000000000000abcd
.count()
去字符串中寻找子序列出现的次数,可设置起始位置和终止位置
.find()
从开始往后找,获取其第一次出现的位置。找不到返回-1
一般来说,指定查找区间为≥和<
.index() ——避免使用
从开始往后找,获取其第一次出现的位置,若找不到直接报错
.format()
格式化,将一个字符串中的占位符替换为指定值。占位符既可以是对应关系,也可以是0,1,2...
test = 'I am {name}' v = test.format(name = 'Alex') print(v) #I am Alex
1 test = 'I am {name}, like {hobby}!' 2 v = test.format(**{"name":"Jenny","hobby":"sleeping"}) 3 print(v) 4 #I am Jenny, like sleeping!
.format_map()
test = 'I am {name}, age {a}' v = test.format_map({"name": "Alex", "a":13}) print(v) #I am Alex, age 13
test = 'I am {name}, age {a}' v = test.format_map({'name': 'Alex', 'a':13}) print(v) #I am Alex, age 13
.isalnum()
判断字符串中是否只包含字母和数字,返回布尔值
.isalpha()
判断字符串中是否只包含字母(包括汉字),返回布尔值
.isnumeric() 或 .isdigit() 或 .isdecimal()
判断字符串中是否只包含数字,返回布尔值,普适性由高到低排列,比如第一个识别中文二,中间的可以识别②,而最后一个这些都不识别
.startswith() 或.endswith()
判断是否以xx开始或以xx结尾,结果返回布尔值
.isientifier()
判断是否是标识符,标识符即字母、数字和下划线组成的变量
1 a = 'kez_1' 2 x = a.isidentifier() 3 print(x,a) 4 #True kez_1
.isprintable()
判断是否包含不可见的字符, 都不可见
.isspace()
判断是否全部是空格
.istitle()
判断是否每个单词都首字母大写
1 b = 'I Am Jennifer' 2 b1 = b.istitle() 3 print(b1,b) 4 #True I Am Jennifer 5 c = 'I am Jennifer' 6 c1 = c.istitle() 7 print(c1,c) 8 #False I am Jennifer
.title()
将字符串改成标题型
1 d = 'a cute dog' 2 d1 = d.title() 3 print(d1) 4 #A Cute Dog
.islower() .lower()
判断字符串是否全是小写 及 将字符串全部转化为小写
.isupper() .upper()
判断字符串是否全是大写 及 将字符串全部转化为大写
.swapcase()
大小写字母相互转换
1 m = "English IS poor" 2 m1 = m.swapcase() 3 print(m1) 4 #eNGLISH is POOR
.lstrip() .rstrip() .strip()
去除左、右或左和右的空白和 和 ,也可以指定去除最长公共子序列(比如字符块)
1 e = ' ab cd ' 2 e1 = e.lstrip() 3 e2 = e.rstrip() 4 e3 = e.strip() 5 print(e) 6 print(e1) 7 print(e2) 8 print(e3) 9 """ 10 ab cd 11 ab cd 12 ab cd 13 ab cd 14 """
1 f = 'abcdab' 2 e1 = f.lstrip('ab') 3 e2 = f.rstrip('hhab') 4 e3 = f.strip('lab') 5 print(f) 6 print(e1) 7 print(e2) 8 print(e3) 9 """ 10 abcdab 11 cdab 12 abcd 13 cd 14 """
.maketrans() .translate()
设置对应关系,并用对应关系进行相应替换
1 initial_code = "一二三四五" 2 final_code = "12345" 3 m = str.maketrans(initial_code,final_code) 4 v = "一个小朋友买了五朵花另外三个小朋友买了四个花盆" 5 new_v = v.translate(m) 6 print(new_v) 7 #1个小朋友买了5朵花另外3个小朋友买了4个花盆
.partition() .rpartition() .split() .rsplit()
按照一定规则分割
1 m = "1*2*3*4*2+3*4+5*50" 2 m1 = m.partition("*") 3 m2 = m.rpartition('*') 4 m3 = m.split('*') 5 m4 = m.rsplit('*',4) 6 print(m1) 7 print(m2) 8 print(m3) 9 print(m4) 10 """ 11 ('1', '*', '2*3*4*2+3*4+5*50') 12 ('1*2*3*4*2+3*4+5', '*', '50') 13 ['1', '2', '3', '4', '2+3', '4+5', '50'] 14 ['1*2*3', '4', '2+3', '4+5', '50'] 15 16 """
.splitlines()
True False:是否保留换行
1 m = "English is really fun" 2 m1 = m.splitlines() 3 m2 = m.splitlines(False) 4 m3 = m.splitlines(True) 5 print(m1) 6 print(m2) 7 print(m3) 8 """ 9 ['English', 'is really', 'fun'] 10 ['English', 'is really', 'fun'] 11 ['English ', 'is really ', 'fun'] 12 13 """
.expandtabs()
依据括号内的数字断句,适合做表格
1 test = '1234567 123456789 abcd' 2 v = test.expandtabs(6) 3 print(v) 4 #1234567 123456789 abcd 5 #第一个空了五格,第二个空了三格 6 information = 'jenny famale jenny@126.com cc male cc@qq.com kat female kattie@163.com' 7 v = information.expandtabs(15) 8 print(v) 9 """ 10 jenny famale jenny@126.com 11 cc male cc@qq.com 12 kat female kattie@163.com 13 14 """
.join()
将字符串的每个元素按照指定分隔符进行拼接
1 e = '你是风儿我是沙' 2 t = '_' 3 e1 = t.join(e) 4 print(e1) 5 #你_是_风_儿_我_是_沙 6 e2 = '*'.join(e) 7 print(e2) 8 #你*是*风*儿*我*是*沙
索引,下标 ,切片
获取字符串中的某一个字符或某个字符串
1 m = "english" 2 m1 = m[0] 3 m2 = m[1] 4 m3 = m[0:4] 5 m4 = m[0:-1] 6 m5 = m[1:-1] 7 print("1th:",m1,"2nd:",m2,"1th~4th:",m3,"first~the next to last:",m4,"2nd~ the next to last:",m5) 8 """ 9 1th: e 2nd: n 1th~4th: engl first~the next to last: englis 2nd~ the next to last: nglis 10 """
len('abcd')
获取当前字符由几个字符组成,用在列表中是获取当前列表的组成元素个数(用“,”分开的部分)
注意:Python 3 中 一个中文是一个字符
Python 2 中一个中文是三个字符
1 m = "我是一个女侠" 2 index = 0 3 leng = len(m) 4 while index < leng: 5 print(m[index]) 6 index += 1 7 print("==========") 8 """ 9 我 10 是 11 一 12 个 13 女 14 侠 15 ========== 16 """
for循环:
for 变量名 in 字符串,索引切片都能用
1 m = "我是一个女侠" 2 for lala in m: 3 print(lala) 4 """ 5 我 6 是 7 一 8 个 9 女 10 侠
11 """
range(x)
创建连续的数字,默认步长为1、大于等于0,小于x的整数,也可以设置步长来指定不连续数
将range(x)与for in结合起来,可以将索引打出来。
1 m = input(">>>") 2 m1 = range(len(m)) 3 for item in m1: 4 print(item,m[item]) 5 """ 6 >>>abcdefg 7 0 a 8 1 b 9 2 c 10 3 d 11 4 e 12 5 f 13 6 g 14 """
列表
list
元组
tuple
字典
dict