1.Python2 中print x的x不需要加括号,但Python3的print(x) 需要加括号
2.幂的运算符:**
3. x=input("Please enter a value") : input返回的x是个字符串,如果要转换成int,则需要 int(x)
4.创建一个字符串,用单引号或者双引号把字符串引起来,如果字符串内部还有单引号,则整个字符串可以用双引号引起来,反之亦然。
如果字符串里有特殊字符,比如换行,tab键,则需要用 来转义,如 ,
5. 一个字符串加数字合并成一个大字符串的时候,数字需要用str(x)转换,否则报错:
s= 'sadfsf'+str(987)
s='sadfsf987'
6. int/float...可以将非十进制的字符串转换成对应的数字,需要加上字符串表示的进制数,比如int("10010",2)表示将2进制的字符串转换成int, float('F04A',16)则是把16进制F04A字符串转换成float
7.获取长度的是len('ssfsf'), 在C#中是("sfdsfd").length()
8.查找一个字符串在另一个字符串中的位置,用find:
>>>s='asdfsdfsdf'
>>>s.find('df')
>>>2 //index是从0开始的,如果不存在,返回-1
9.截取字符串用[x:y], 从x-1位置开始截取到y,//index从0开始
s='abcdefg'
s[2:5]
cdef
可以省略x,y中的任意数字,省略xji表示从开始截取到y,省略y表示从x开始截取到结束
可以用负数,表示从倒数位置(反向顺序)截取,比如s[-3:]表示从
10.字符串替换用replace,比如:
s='sfsfsfdsdfsdfsdf',
s.replace('d','X').
sfsfsfXsXfsXfsXf
注意s字符串本身没变,如果要s字符串本身变出替换后的,需要重新赋值:s=s.replace()
s.toupper(), tolower(), 也是同样道理
字符串分割得到一个列表:
"abc,def,ghi".split(',') //['abc','def','ghi']
11.if x>10:
xxx
elif x<10:
xxx
else:
xxx
11.逻辑运算符:and or not, C#是 && | !
12. for i in range(1,11)
print(i) //打印1-10,包含1不包含11
for i in range(10):
print(i) //则会打印0~9,共10个
13. while True:
s=input('please input a number:')
if s=='X':
break
14. 定义函数:函数名和变量名都一样是小写,如果多个单词用‘_’连接
def function_name(param1, param2):
function body
return data
函数返回多个值:
def cal_temperature(kelvin):
celcus = kelvin-273;
farenhit = celcus*9/5+32
return celcus,farenhit
x,y = cal_temperature(230)
print(x)
print(y)
15. 列表list:
a=[123,'ad',1.2]
len(a) //确定长度
a[0] //访问元素
a[0]=5.3 //改变元素值
a.append(1.687) //添加一个值
a.insert(2,'newstr') //在指定位置添加元素
a=[123,125]
a.extend(b) //链接两个list
a.pop() //弹出最后一个元素
a.pop(2) //弹出特定位置元素
16. 遍历list
a=[123,'ad',1.2]
for x in a:
print(x)
for x in rang(len(a)):
print(x, a[x])
17. list 排序: a.sort() //这样会改变a本身,如果不要改变a本身,则需要先把a复制给b, 对b排序
import copy
b=copy.copy(a)
b.sort()
18.分割列表: a[1:3], a[-1:], a[2:]
19.字典:键-值对
a ={'key1':123, 'key2',"1234", 125:'123'}
a['key1'] //获取值
a['key1'] ='1231' //改变key对于的值
a.pop('key1') //删除一个元素
for x in a:
print(x) //遍历键名字
for x,y in a:
print(x +“ ”+y) //遍历键和值
20. 定义类, 需要有 _init_(self,x,y) 作为构造函数,类中所有的 方法 都要包含self参数, 这跟前面的(module中的)函数有点不同,且类中的函数在调用类中其他函数时要在函数前加self
class Person:
''' this is doc '''
def __init__(self, param1, param2): //注意init的前后是双下划线
sefl.name = param1 //self 后面的是成员变量,无需申明,可被类中所有成员使用
self.age = param2
def fun1(self):
return self.name+":"+self.age
>>>Person.__doc__ //能查看上述类说明, 注意前后是双下划线
p= Person('Simon', 15)
p.name //>>>Simon
21.类的继承
class Employee(Person):
def __init__(self, name, age, phone_number, salary):
super._init_(name,age) //调用父类初始化
self.salaray = salary //初始化自己的变量
self.number = phone_number
def pay_bonus(self, amount):
self.salary = self.salary+amount
22. 序列化:pickling
import pickle
class Person:
'''this is doc'''
def __init__(self,_name,_age):
self.name=_name
self.age=_age
def func1(self):
print(self.name+":"+str(self.age))
>>> p=Person('jason',60)
>>> p.func1()
jason:60
>>> f=open('c:\test.pickle','wb') //pickle默认是以binary方式读写的,所以必须加b
>>> pickle.dump(p,f,0) //0表示以string方式把对象保存到文件中,此时文件里面是string, 可以打开看的,如果没有最后0,则对象以binary保存,打开乱码
>>> f.close()
>>> f=open('c:\test.pickle','rb') //pickle默认是以binary方式读写的,所以必须加b
>>> newclass = pickle.load(f)
>>> newclass
<__main__.Person object at 0x0076A670>
>>> newclass.name //load出来的就是之前保存的对象,可以直接调用成员及变量
'jason'
>>> newclass.func1()
jason:60
23. 异常处理:
try:
//do somthing
except Exception as e: //使用as之后获取异常的信息
print(e)//发生异常的处理
else:
//未发生异常的处理
finally:
print('do somthing')
24.模块
如果只是import xxx则在使用xxx模块里面的函数或者变量的时候需要明确加上xxx做前缀即xxx.func()
如果import xxx as x, 则后面调用模块里面的函数的时候,直接x.func()
如果想要省略前缀,则需要使用from xxx import * #导入xxx模块里面所有的函数/变量,后面可以直接使用func()而无需加前缀xxx.func(),但是这样可能会造成函数名跟其他模块的里面的函数冲突。
也可以from xxx import xx, 只导入xxx module里面的xx函数