码迷,mamicode.com
首页 > 编程语言 > 详细

第二篇--python基础

时间:2016-04-30 15:39:15      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:

输入和输出

输入:

input:  它会根据用户的输入变换相应的类型,如果要输入字符和字符串的时候必须要用引号包起来;

raw_input : 接收任意类型的输入;

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
# 将用户输入的内容赋值给 name 变量
name = raw_input("请输入用户名:")
 
# 打印输入的内容
print name

输出:

#用print加上字符串,就可以向屏幕上输出指定的文字。
>>>print "hello world"

 

常用内建函数

1、内建函数:

dir(sys)            # 显示对象的属性
help(sys)           # 交互式帮助
int(obj)            # 转型为整形
str(obj)            # 转为字符串
len(obj)            # 返回对象或序列长度
open(file,mode)     # 打开文件 #mode (r 读,w 写, a追加)
range(0,3)          # 返回一个整形列表
raw_input("str:")   # 等待用户输入
type(obj)           # 返回对象类型
abs(-22)            # 绝对值
random              # 随机数
choice()            # 随机返回给定序列的一个元素
divmod(x,y)         # 函数完成除法运算,返回商和余数。
round(x[,n])        # 函数返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数
strip()             # 是去掉字符串两端多于空格,该句是去除序列中的所有字串两端多余的空格
del                 # 删除列表里面的数据
cmp(x,y)            # 比较两个对象    #根据比较结果返回一个整数,如果x<y,则返回-1;如果x>y,则返回1,如果x==y则返回0
max()               # 字符串中最大的字符
min()               # 字符串中最小的字符
sorted()            # 对序列排序
reversed()          # 对序列倒序
enumerate()         # 返回索引位置和对应的值
sum()               # 总和
list()              # 变成列表可用于迭代
eval(3+4)         # 将字符串当表达式求值 得到7
exec a=100        # 将字符串按python语句执行
exec(a+=new)      # 将变量a的值作为新的变量
tuple()             # 变成元组可用于迭代   #一旦初始化便不能更改的数据结构,速度比list快
zip(s,t)                 # 返回一个合并后的列表  s = [‘11‘,‘22‘]  t = [‘aa‘,‘bb‘]  [(‘11‘, ‘aa‘), (‘22‘, ‘bb‘)]
isinstance(object,int)        # 测试对象类型 int 
xrange([lower,]stop[,step])            # 函数与range()类似,但xrnage()并不创建列表,而是返回一个xrange对象

 

2、列表内建函数:

list.append(obj)                 # 向列表中添加一个对象obj
list.count(obj)                  # 返回一个对象obj在列表中出现的次数
list.extend(seq)                 # 把序列seq的内容添加到列表中
list.index(obj,i=0,j=len(list))  # 返回list[k] == obj 的k值,并且k的范围在i<=k<j;否则异常
list.insert(index.obj)           # 在索引量为index的位置插入对象obj
list.pop(-1)                     # 删除并返回指定位置的对象,默认是最后一个对象
list.remove(obj)                 # 从列表中删除对象obj
list.reverse()                   # 原地翻转列表
list.sort(func=None,key=None,reverse=False)  # 以指定的方式排序列表中成员,如果func和key参数指定,则按照指定的方式比较各个元素,如果reverse标志被置为True,则列表以反序排列

 

 

3、字符串内建函数:

string.expandtabs(tabsize=8)                      # tab符号转为空格 #默认8个空格
string.endswith(obj,beg=0,end=len(staring))       # 检测字符串是否已obj结束,如果是返回True #如果beg或end指定检测范围是否已obj结束
string.count(str,beg=0,end=len(string))           # 检测str在string里出现次数  f.count(‘\n‘,0,len(f)) 判断文件行数
string.find(str,beg=0,end=len(string))            # 检测str是否包含在string中
string.index(str,beg=0,end=len(string))           # 检测str不在string中,会报异常
string.isalnum()                                  # 如果string至少有一个字符并且所有字符都是字母或数字则返回True
string.isalpha()                                  # 如果string至少有一个字符并且所有字符都是字母则返回True
string.isnumeric()                                # 如果string只包含数字字符,则返回True
string.isspace()                                  # 如果string包含空格则返回True
string.isupper()                                  # 字符串都是大写返回True
string.islower()                                  # 字符串都是小写返回True
string.lower()                                    # 转换字符串中所有大写为小写
string.upper()                                    # 转换字符串中所有小写为大写
string.lstrip()                                   # 去掉string左边的空格
string.rstrip()                                   # 去掉string字符末尾的空格
string.replace(str1,str2,num=string.count(str1))  # 把string中的str1替换成str2,如果num指定,则替换不超过num次
string.startswith(obj,beg=0,end=len(string))      # 检测字符串是否以obj开头
string.zfill(width)                               # 返回字符长度为width的字符,原字符串右对齐,前面填充0
string.isdigit()                                  # 只包含数字返回True
string.split("分隔符")                             # 把string切片成一个列表
":".join(string.split())                          # 以:作为分隔符,将所有元素合并为一个新的字符串

 

4、字典内建方法:

dict.clear()                          # 删除字典中所有元素
dict copy()                           # 返回字典(浅复制)的一个副本
dict.fromkeys(seq,val=None)           # 创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对的初始值
dict.get(key,default=None)            # 对字典dict中的键key,返回它对应的值value,如果字典中不存在此键,则返回default值
dict.has_key(key)                     # 如果键在字典中存在,则返回True 用in和not in代替
dicr.items()                          # 返回一个包含字典中键、值对元组的列表
dict.keys()                           # 返回一个包含字典中键的列表
dict.iter()                           # 方法iteritems()、iterkeys()、itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表
dict.pop(key[,default])               # 和方法get()相似.如果字典中key键存在,删除并返回dict[key]
dict.setdefault(key,default=None)     # 和set()相似,但如果字典中不存在key键,由dict[key]=default为它赋值
dict.update(dict2)                    # 将字典dict2的键值对添加到字典dict
dict.values()                         # 返回一个包含字典中所有值得列表
dict([container])               # 创建字典的工厂函数。提供容器类(container),就用其中的条目填充字典
len(mapping)                    # 返回映射的长度(键-值对的个数)
hash(obj)                       # 返回obj哈希值,判断某个对象是否可做一个字典的键值 

 

5、集合方法

s.update(t)                         # 用t中的元素修改s,s现在包含s或t的成员   s |= t
s.intersection_update(t)            # s中的成员是共用属于s和t的元素          s &= t
s.difference_update(t)              # s中的成员是属于s但不包含在t中的元素    s -= t
s.symmetric_difference_update(t)    # s中的成员更新为那些包含在s或t中,但不是s和t共有的元素  s ^= t
s.add(obj)                          # 在集合s中添加对象obj
s.remove(obj)                       # 从集合s中删除对象obj;如果obj不是集合s中的元素(obj not in s),将引发KeyError错误
s.discard(obj)                      # 如果obj是集合s中的元素,从集合s中删除对象obj
s.pop()                             # 删除集合s中的任意一个对象,并返回它
s.clear()                           # 删除集合s中的所有元素
s.issubset(t)                       # 如果s是t的子集,则返回True   s <= t
s.issuperset(t)                     # 如果t是s的超集,则返回True   s >= t
s.union(t)                          # 合并操作;返回一个新集合,该集合是s和t的并集   s | t
s.intersection(t)                   # 交集操作;返回一个新集合,该集合是s和t的交集   s & t
s.difference(t)                     # 返回一个新集合,改集合是s的成员,但不是t的成员  s - t
s.symmetric_difference(t)           # 返回一个新集合,该集合是s或t的成员,但不是s和t共有的成员   s ^ t
s.copy()                            # 返回一个新集合,它是集合s的浅复制
obj in s                            # 成员测试;obj是s中的元素 返回True
obj not in s                        # 非成员测试:obj不是s中元素 返回True
s == t                              # 等价测试 是否具有相同元素
s != t                              # 不等价测试 
s < t                               # 子集测试;s!=t且s中所有元素都是t的成员
s > t                               # 超集测试;s!=t且t中所有元素都是s的成员

 

6、数字函数:

函数              返回值 ( 描述 )
abs(x)           返回数字的绝对值,如abs(-10) 返回 10
ceil(x)          返回数字的上入整数,如math.ceil(4.1) 返回 5
cmp(x, y)        如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x)           返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x)          返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x)         返回数字的下舍整数,如math.floor(4.9)返回 4
log(x)           如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x)         返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...)     返回给定参数的最大值,参数可以为序列。
min(x1, x2,...)     返回给定参数的最小值,参数可以为序列。
modf(x)          返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y)        x**y 运算后的值。
round(x [,n])      返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x)          返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回 2+0j

 

7、随机函数

choice(seq)                  从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step])     从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random()                    随机生成下一个实数,它在[0,1)范围内。
seed([x])                   改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst)                 将序列的所有元素随机排序
uniform(x, y)                随机生成下一个实数,它在[x,y]范围内。

 

8、三角函数

acos(x)        返回x的反余弦弧度值。
asin(x)        返回x的反正弦弧度值。    
atan(x)        返回x的反正切弧度值。
atan2(y, x)    返回给定的 X 及 Y 坐标值的反正切值。
cos(x)         返回x的弧度的余弦值。
hypot(x, y)    返回欧几里德范数 sqrt(x*x + y*y)。
sin(x)       返回的x弧度的正弦值。
tan(x)        返回x弧度的正切值。
degrees(x)     将弧度转换为角度,如math.degrees(math.tan(1.0)) ,返回30.0
radians(x)     将角度转换为弧度

 

 

集合:列表、元组、字典

1、字符串:

  • Python 字符串操作:string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等;
  • 字符串是python中最常用的数据类型,我们可以用引号创建字符串;
  • python访问字符串,可以使用方括号来截取字符串;
  • 可以对已存在的字符串进行修改,并赋值给另一个变量;
str = ’0123456789print str[0:3]    #截取第一位到第三位的字符
print str[:]      #截取字符串的全部字符
print str[6:]     #截取第七个字符到结尾
print str[:-3]    #截取从头开始到倒数第三个字符之前
print str[2]      #截取第三个字符
print str[-1]     #截取倒数第一个字符
print str[::-1]   #创造一个与原字符串顺序相反的字符串
print str[-3:-1]  #截取倒数第三位与倒数第一位之前的字符
print str[-3:]    #截取倒数第三位到结尾
print str[:-5:-3] #逆序截取


str2 = str1
str1 =abc
print str1,str2

#连接字符串
str1 = 123
str2 = 456
str1 +=str2
print str1

#字符串查找:
index与find查找的区别:如果使用index查找的元素没在字符串中,则报错,find不报错;
str1 = 123
print str1.index(1)
print str1.find(1)

#字符串比较
str1 = 123
str3 = 123
str2 = 456
print cmp(str1,str2)       #字符串不相同输出-1;
print cmp(str1,str3)       #字符串相同输出0;

#字符串长度
str1 = 123456
print len(str1)

#字符串大小写转换
str1 = aBcD
print str1.upper()          #全部转换为大写
print str1.lower()          #全部转换为小写

#分割字符串
str1 = a,B,c,D
print str1.split(,)

#连接字符串
str1 = [a,B,c,D]
print ,.join(str1)

 

2、列表:[] 

  •  序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推;
  •  列表通过方括号中用逗号分割的项定义;
  •  支持索引和切片操作;可以使用 in查看一个元素是否在list中;
  •  list与tuple可以相互转换,使用内置的函数list()和tuple()
>>>list1 = [1,2,3,4]
>>>list2 = [a,b,c]
>>>list3 = [3,3,5,7,8,9,45,34,7,8,45,34,23,78,9]

>>>print dir(list1)            #查看list1列表中的方法:
#输出:‘append‘, ‘count‘, ‘extend‘, ‘index‘, ‘insert‘, ‘pop‘, ‘remove‘, ‘reverse‘, ‘sort‘

>>>list1.append(a)           #append方法:在list1列表中追加元素‘a‘;
>>>print list1           #打印列表元素;
[1,2,3,4,a]


>>>print list1.count(1)       #打印元素1在list1列表出现的次数;
1

list1.extend(list2)          #将list2中的元素添加到list1列表中;
print list1              #打印list1中的元素;
[1, 2, 3, 4, a, a, b, c]

>>>print list2.index(a)     #打印元素‘a‘在list2中的索引;
0
>>>list1.insert(1,a)           #在list1列表的索引位置1的地方添加元素‘a‘;
>>>print list1           #打印list1中的元素;
[1,a,2,3,4]

>>>print list1.pop(1)       #删除并返回指定索引位置的元素,默认(pop())为列表最后一个元素;
2
>>>print list1
[1,3,4]


>>>list1.remove(3)         #删除list1中的元素3;
>>>print list1
[1,2,4]

>>>list1.reverse()         #翻转list1中的元素;
>>>print list1
[4,3,2,1]

>>>list3.sort()           #按指定的方式排列元素;
>>>print list3
[3, 3, 5, 7, 7, 8, 8, 9, 9, 23, 34, 34, 45, 45, 78]

>>>list3.sort(reverse=True)          #reverse=True时,reverse实现降序排序;
>>>print list3
[78, 45, 45, 34, 34, 23, 9, 9, 8, 8, 7, 7, 5, 3, 3]

更多详见

3、元组:()      

  • tuple和list十分相似,但是tuple是不可变的,即不能修改tuple;
  • 元组通过圆括号中用逗号分割的项定义;
  • 支持索引和切片操作;可以使用 in查看一个元素是否在tuple中。
  • 空元组();只含有一个元素的元组("a",) #需要加个逗号
  • tuple比list速度快;对不需要修改的数据进行‘写保护’,可以是代码更安全
  • tuple与list可以相互转换,使用内置的函数list()和tuple()
>>>tuple1 = (1,2,3,4,23,4,5,72,3,4,6)
count, index

>>>print tuple1.count(4)               #打印元素4在tuple1出现的次数;
>>>print tuple1.index(4)               #打印元素4在tuple1的索引(默认从左到右打印第一个);
>>>print tuple1.index(4,1,7)           #打印元素4在tuple1的索引,从第一个1开始到第7结束;
>>>tup1 = (50,)                        #元组中只包含一个元素时,需要在元素后面添加逗号;
>>>del tuple1                          #元祖的元素不允许修改和删除,可以使用del删除整个元组;

更多详见:

4、字典:{}

  • 字典是另一种可变容器模型,且可存储任意类型对象,如其他容器模型;
  • 字典由键和对应值成对组成。字典也被称作关联数组或哈希表;
>>>dict1 ={1:a,2:b,3:c,4:d}
>>>dict2 ={11:aa,22:bb,33:cc,44:dd}
>>>print dir(dict1)
clear, copy, fromkeys, get, has_key, items, iteritems, iterkeys, itervalues, keys, pop, popitem, setdefault, update, values, viewitems, viewkeys, viewvalues

>>>dict1.clear()                           #清空字典
>>>print dict1
{}

>>>dict2 = dict1.copy()                    #拷贝字典
>>>print dict2
{1:a,2:b,3:c,4:d}

>>>seq = [1,2,3]                           #seq可以是列表,元组等序列;
>>>dict2 = dict1.fromkeys(seq,3)           #创建并返回一个新字典,以seq中的元素做该字典的键,3做该字典中所有键对的初始值;
>>>print dict2
{1: 3, 2: 3, 3: 3}

>>>print dict1.get(2,1)                    #对字典dict1中的键2,返回其对应的值b,如果不存在此键,返回自定义值1;
b

>>>print dict1.has_key(2)                  #如果键2在字典dict1中存在,返回True,反之为False,可以用in和not in代替
True

>>>print dict1.items()                     #返回一个包含字典中键、值对元组的列表
[(1, a), (2, b), (3, c), (4, d)]

>>>for k,v in dict1.iteritems():           #迭代输出字典的键值对,python3.x里面已经废除
      print k,v
1 a
2 b
3 c
4 d

>>>for k in dict1.iterkeys():              #迭代输出字典的键
      print k
1
2
3
4

>>>for v in dict1.itervalues():            #迭代输出字典的值
      print v
a
b
c
d

>>>print dict1.keys()                      #以列表的形式返回字典的所有key
[1, 2, 3, 4]

>>>dict1.pop(4,1)                          #与get方法相似,如果字典中key为4存在,删除并返回其对应的值,如果不存在,返回自定义的1;
d
>>>print dict1
{1: a, 2: b, 3: c}

>>>dict1.popitem()                         #随机删除字典中的一对键和值
>>>print dict1
{2: b, 3: c, 4: d}

>>>dict1.setdefault(40,11)                 #如果字典中不存在键40,由dict1[40]=11为它赋值
>>>print dict1
{40: 11, 1: a, 2: b, 3: c, 4: d}

>>>dict1.update(dict2)                     #讲字典dict2中的键值对添加到字典dict1中;
>>>print dict1
{1: a, 2: b, 3: c, 4: d, 33: cc, 11: aa, 44: dd, 22: bb}

>>>print dict1.values()                    #以列表的形式返回字典的所有values
[a, b, c, d]

>>>for k,v in dict1.viewitems():           #迭代输出字典的键值对,python3.x里面已经废除
      print k,v
1 a
2 b
3 c
4 d

>>>for k in dict1.viewkeys():              #与iterkeys()相似,迭代输出字典的键
      print k
1
2
3
4

>>>for v in dict1.viewvalues():            #与itervalues()相似,迭代输出字典的值
      print v
a
b
c
d

更多详见

 

5、字符串格式化

  • 其中%s,%d 是占位符,%s代表字符串,%d 代表数字 ,% 后面的值是实际传入的参数,用来替换%s,和%d的值
  • 有几个%?,后面就跟几个变量或值,顺序对应好,如果只有一个%?,括号可以省略;
  • %d--->整数 %f--->浮点数 %s---字符串 %x--->十六进制整数
  • 如果不太确定用什么,%s永远起作用,会把任何数据类型转换为字符串;
--第一种:
name = "I‘m %s" % allen
name = "I‘m %s, age: %d" % (monk,25)


   
--第二种     {0}   {1}   x.format(xxx,xxx)
传入字符串:
name = "I‘m {0},age:{1}"
new_name = name.format(monk,25)
print new_name

#传入一个列表:
list1 = [monk,25]
name = "I‘m {0},age:{1}"
new_name = name.format(*list1)
print new_name

#传入一个字典
dic = {name:monk,age:25}
name = "I‘m {0},age:{1}"
new_name = name.format(**list1)
print new_name

#格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
>>> %2d-%02d % (3, 1) 
 3-01 
>>> %.2f % 3.1415926 
3.14

#对于Unicode字符串,用法完全一样,最好确保替换的字符串也是Unicode字符串:
>>> uHi, %s % uMichael 
uHi, Michael  

#有时候字符串里面的%是一个普通字符,需要用%%转义来表示一个%:
>>> growth rate: %d %% % 7 growth rate: 7 % 
基本语句

1、条件语句:

  • Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块
#语法格式
if
<条件判断1>: <执行1> else: <执行2> #或者: if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> else: <执行4> age = 3 if age >= 18: print your age is, age else: print your age is, age #或者: age = 3 if age >= 18: print adult elif age >= 6: print teenager else: print kid

 

2、循环语句

  • for循环语句:Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
#语法格式
for iterating_var in sequence:
   statements(s)

 
for letter in Python:     # First Example
   print Current Letter :, letter
 
fruits = [banana, apple,  mango]
for fruit in fruits:        # Second Example
   print Current fruit :, fruit

 

  • while循环语句:while 语句用于循环执行程序,执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
#语法格式:
while 判断条件:
    执行语句……

count = 0
while (count < 9):
   print The count is:, count
   count = count + 1

 

  • 循环使用 else 语句:在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
for num in range(10,20):  
   for i in range(2,num): 
      if num%i == 0:      
         j=num/i          
         print %d equals %d * %d % (num,i,j)
         break 
   else:                  
      print num, is a prime number

 

4、continue,break,pass

  • while 语句和for语句:还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立;
  • 如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。

  • Python pass是空语句,是为了保持程序结构的完整性。

     

 

第二篇--python基础

标签:

原文地址:http://www.cnblogs.com/zhaojinhong/p/5436952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!