说在前面

最近脑子一抽去学Python了,感觉自己好智障。Python很多东西都和C++不一样,所以特意记录下来。

输入输出

input()和raw_input()

  • 简单的说,input()读入的是数字,而raw_input()读入的是字符串。

  • 然后神奇的就是input()其实是可以读入字符串的,不过必须要用''或者""来括起来,不然你就会RE。

  • 所以说你就需要用raw_input()来解决读入字符串的问题,input()来解决读入非字符串的问题。

  • 具体用法:

1
2
a=input()
b=raw_input()
  • 但是这里注意的是,如果你读入的是
1
123456 YunYuanXiang
  • 那么你就GG了,因为Python只能读一行也就是说,这个读入是错误的。
  • 正确的读法是这样的:
1
2
123456
YunYuanXiang

空格隔开的正确读法

1
2
3
4
def splitStr(initStr,splitFlag=' '):
tmpList=initStr.split(splitFlag)
tmpList=list(filter(lambda x:x!='',tmpList))
return tmpList

输出

直接 print 输出就行,一些黑科技会补的

计算

  1. 在Python中,多了一个//计算,这个运算就是直接取整数部分,也就是说,这个计算出来的除法只是答案的整数部分。
  2. Python还多了**计算,这个就是幂运算。a**b=a^b.
  3. Python内置高精度,超级方便

标准存储类型

Numbers(数字)

  • 数字类型支持:
  1. int(有符号整型)
  2. long(长整型,也可以代表八进制和十六进制)
  3. float(浮点型)
  4. complex(复数)

String(字符串)

如果你要实现从字符串中获取一段子字符串的话,可以使用变量 [头下标:尾下标],就可以截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

1
2
a="Thisisbetter!"
print a[0:1]

答案就是 T

这里注意string的""''是一样的。

但是在输出的时候需要,如果有和''或者""相同的字符,需要用\来使用

1
print 'Hello\'OOO'

的输出结果是:Hello’OOO

比较好玩的就是'''这个三引号了。他是把里面的东西原封不动的全部输出出来:

1
2
3
4
5
print
''' GGG
GGG
GGG QAQ
??? '''

结果

1
2
3
4
 GGG
GGG
GGG QAQ
???

List(列表)

列表里面是使用 []的:

1
List=[324,-786,2.23,"YYX",70.2]

List的使用和数组是一样的,都是从0开始的。

List可以输出一段,比如:

1
2
print List[1:2]
print List[1]

就会输出 一段东西,和一个东西

1
2
[-786,2.23]
-786

区别就是有没有带[]

Tuple(元组)

元组和列表是一样的,区别就是不可以修改内容,这里不做讨论。

Dictionary(字典)

字典和结构体差不多是使用{}来区别的。

具体方法赋值方法有两种:

1
2
3
4
5
6
7
dist={'Name':'YunYuanXiang',233333:'MMP','size':16}
dist['Name']='YunYuanXiang'
dist[233333]='MMP'
dist['size']=16
print dist['Name']
print dist[233333]
print dist['size']

结果是:

1
2
3
YunYuanXiang
MMP
16

Python的一些操作

成员运算符

  • 成员运算符非常的神奇一共有两种操作,分别是InNot in:

  • 在字典里面查找的时候,只能找到索引,没有办法找里面的值。也就是可以找到结构体里面定义的结构,但是没有办法找到里面的值

  • 但是列表就可以寻找里面的值了!而且不仅仅是列表,字符串也支持啊!

1
2
3
4
5
6
7
8
9
10
11
dist={'Name':'YunYuanXiang',233333:'MMP','size':16}
if 233333 in dist: print 'In'
else: print 'Not In'
if 'MMP' in dist: print 'In'
else: print 'Not IN'
dist=['GG',123,'QAQ']
a='GG'; b='QAQ'
if a not in dist: print 'Not In'
else: print 'In'
if b not in dist: print 'Not In'
else: print 'In'

然后实际的输出就是:

1
2
3
4
In
Not IN
In
In

强制转换

函数 转换内容
hex(x) #16 从十进制转换为十六进制
oct(x) #8 从十进制转换为八进制
bin(x) #2 从十进制转换为二进制
float(x) 将x转换为浮点数
int(x) 将x转换为int数
long(X) 将x转换为long数
str(x) 将x转换为字符串
eval(x) 计算并返回有效的计算表达式x

math函数操作

一定要记得导入模块

1
import math
函数 返回内容
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
math.ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
math.exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
math.fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0,返回的一定是一个浮点数
math.floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
math.log(x) math.log(64,2)返回6.0, 底数为2,真数为64
max(x1, x2,…) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,…) 返回给定参数的最小值,参数可以为序列。
pow(x, y) 返回x的y次幂,实际上就是x**y,
round(x,n) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
math.sqrt(x) 返回数字x的平方根math.sqrt()

随机函数操作

还是一样的导入模板。

1
import random
函数 返回内容
random.choose(x) 返回序列x中,任意选择一个值x=range(10)时从1-9任意选择一个数字。
random.randrange(x,y,z) 返回随机生成的整数,在x-y之间,并且是z的整数倍。z可以不填。
random.random() 返回在[0,1)之间的一个实数
random.shuffle(x) 返回一个完全打乱的数列x。
uniform(x,y) 返回一个随机的实数,范围在x-y之间。

三角函数

万恶的三角函数!!!

导入模板

1
import math
函数 返回内容
math.tan(x) 返回x的弧度的正切值。
math.cos(x) 返回x的弧度的余弦值。
math.sin(x) 返回x的弧度的正弦值。
math.atan(x) 返回正切值为x的角度值。
math.acos(x) 返回余弦值为x的角度值。
math.asin(x) 返回正切值为x的角度值。
math.pi 返回π的值。
math.e 返回自然常数e的值。
math.degrees(x) 输入弧度值x返回角度值。
math.hypot(x,y) 输入两直角边x和y,输出斜边长度。
radians(x) 输入角度值x返回弧度值。

字符串操作

字符串的格式化输入输出

%s 操作,这个操作的就是在输入很长的字符串的时候,里面有一些变量需要进行输入,就需要用 %s 进行代替。然后后面加上需要代替的变量。

  • 举个栗子:
1
2
3
4
5
print 'Please input your name:'
x=raw_input()
print 'Please input your age:'
y=input()
print 'OK,I rember that you called %s and your age is %d.'% (x,y)
  • 所以说,关于格式化:
符号 格式化内容
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址

这里的所有格式化输出的使用方法和上面的样例是一样的。

Python函数操作

Python的函数操作和C++是差不多的不一样的是Python是不需要声明函数的返回类型的。需要使用关键词 def :

1
2
3
4
5
def YunYuanXiang (HaHaHa):
print 'GG'
return 'GG'
print YunYuanXiang(123)

最后

然后Python就开始不学了QAQ,感觉学了也没有什么用……

不过真的是非常的感叹Python是一个非常强大的语言。就这样然后开始刷题吧……