python基础篇

                                         python基础篇                                                  

  • python 2.*  与Python 3.*

input()  ==  eval(input())

raw_input()  ==  input()

  • python初始化

#!/usr/bin/env python  【env 是调用的环境变量】
#-*- coding:utf-8 -*-   【可以在代码中写入中文】

>>> print ("Hello World")
Hello World

 

  • 变量

变量赋值:

>>> name_value='freddy'

1 >>> name_value=freddy
2 Traceback (most recent call last):
3   File "<stdin>", line 1, in <module>
4 NameError: name 'freddy' is not defined
View Code

【变量的值如果是字符串必须要加引号否则定义变量会报错 (因为他把变量值当成一个变量)】

>>> freddy=18
>>> name_value=freddy

【如果先把freddy定义一个变量,然后再进行赋值,不加引号,也可以定义变量】

>>> name_age=18

【如果变量的值是数字,可以不用加引号

 变量命名规范:

you_name_is_freddy = tang  OK

YouNameIsFreddy = tang  OK

you-name-is-freddy = tang NO  【不能是中杠,“-”等于“减号”】

88you_name_is_freddy = tang  NO 【不能以数字开头】

!!you_name_is_freddy = tang  NO 【不能以特殊字符开头】

you name is freddy = tang  NO 【不能有空格】

变量调用:

%d  整数

%f  浮点数

%s  字符串

%x  十六进制整数

  • 变量调用,指针

>>> freddy = 18
>>> freddy
18
>>> sb = freddy
>>> sb
18

按说把freddy变量改成88,因为sb赋值给freddy了,所以sb也会为88,但是sb还是18,说明sb赋值时指向的不是freddy,而直接指向18,所以改变变量名freddy的值后,sb变量值不受影响
View Code

>>> freddy = 88
>>> freddy
88
>>> sb
18
>>>

图片原理示例:

 

 

  • python内置常用函数

len(name)  【统计字符串长度】

dir(name)  【查看内置函数用法】

id(name)  【查看变量在内存中的位置】

type()    【查看数据类型】

id(freddy)  【查看变量所在内存地址】

 

  • 数据类型

数据类型分类:

int【整型 如: 18、73、84】  
log【长整型 可能如:2147483649、9223372036854775807】
float【浮点型 如:3.14、2.88】
complex【复数】
 
布尔值:
真 或 假
||     ||
1  或  0
 
  • 列表【优点:可以存取多个信息】

name_list = ["alex","freddy","eric"]     【声明一个列表】
 
name_list[0]    【取值】
 
name_list.append("ERIC")    【追加】
 
name_list.insert(2,"alex")     【在列表的第2个值后面插入alex】
 
name_list.index("alex")   【查找alex值】
 
name_list.count("alex")     【计算这个列表中有多少个alex】
 
name_list.pop()   【删除这个列表中的最后一个值】
 
name_list.remove("alex")  【删除alex,只会删除一个】
 
name_liset.reverse() 【反转显示结果】
 
name_list.sort()   【排序】
 
name_list.extend(list2)  【列表相加:把name_list和list2列表相加】
 
type(name_list) is list  【判断name_list是不是一个列表】
 
【删除一个列表中所有freddy】

>>> name = ['freddy','aaa','ccc','freddy','ddd'] >>> for i in range(name.count('freddy')): ... print(name.remove('freddy')) ... None None >>> name ['aaa', 'ccc', 'ddd'] >>>
【列表中匹配值的方法】
>>> name
['1', '2', 'aa', 2, 8]
>>> "aa" in name
True
>>> 2 in name
True

>>> if "aa" in name:
...  print("aaa")
...
aaa
>>>
【判读列表中有没有haha这个值】

name = ['freddy','aaa','ccc','freddy','ddd']

if 'haha' not in name:
    print("name list not haha")
【判读“t”是不是一个列表】

>>> type(t) is list
True

 

  • 元组列表类型转换

元组转换成列表:
>>> t=('123','123','123')
>>> t
('123', '123', '123')
>>> type(t)
<class 'tuple'>

>>> list(t)
['123', '123', '123']
View Code
 
列表转换成元组:
>>> a=['123','123','123']
>>> a
['123', '123', '123']

>>> tuple(a)
('123', '123', '123')
>>>
View Code
 
查看内置函数用法:
>>> dir(name_list)
>>> dir(name_list)
['__add__', '__class__', '__contains__', '__delattr__', '__del
, '__doc__', '__eq__', '__format__', '__ge__', '__getattribute
, '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '_
, '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__redu
x__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '
izeof__', '__str__', '__subclasshook__', 'append', 'clear', 'c
tend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
View Code
  •  去除空格

name=' aaaaaaaa aaaaaaaaaa ' 

 name.strip()  【去除两边的空格】
 name.lstrip()  【去除左边的空格】
 name.rstrip()  【去除右边的空格】
  • 分割【分割后会变成一个列表】

>>> name = "allen,25,wonderful
>>> name.split(',')
['allen', '25', 'wonderful']
  •  切片

name_list[2:5]     【取2~5个】
 
name_list[:5]    【取0~5这个范围】
 
name_list[-2:]    【取列表中最后两个值】
 
  • 元组【作用:不能改,一共有两种方法】

创建元组:

ages = (11, 22, 33, 44, 55)   或   ages = tuple((11, 22, 33, 44, 55))

  • 字典

创建字典:

person = {"name": "mr.wu", 'age': 18}  或  person = dict({"name": "mr.wu", 'age': 18})

 

person = {
    "name":"allen",
    "age":"25",
    "gender":"man",
}

#person['name']
for k,v in person.items():  #字典无序
    print k,v 

person.keys()  #所有key
person.values() #所有value
person.items()  #所有元素  
  • 循环

continue  【跳出本次循环】

 

for i in range(10):
if i <5:
continue
print(i)

 

 

 

break  【跳出这层循环】

  • 运算符

算数运算:+ - * / % ** //
比较运算:==  !=  < >   >=  <=
赋值运算:=  +=  -=  *=  /=  %=  **/  //=
逻辑运算:and  or  not
成员运算:in  not in
身份运算:is  is not    
位运算:& | ^ ~  >> <<

点这里【运算符大全】

  • 文件操作

文件打开方式:

python中打开文件有两种方式,即:open(...) 和 file(...),推荐使用open(...)

文件打开模式:

r 【只读方式(默认)】

w 【打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件】

a 【打开一个文件用于追加写入。新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入】

w+ 【写读:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件(没人用)】

 

 “+”  【表示可以同时读写某个文件】

r+  【可读;可写;可追加】

a+   【等同于a】

 

“U”表示在读取时,可以将\r \n \r \n 自动换成\n【与 r 或 r+ 模式同使用】

rU

r+U

“b”表示处理二进制文件【如:FTP发送上传ISO镜像文件,linux可以忽略,windows处理二进制文件时需要标注】

rb

wb

ab

 

【向test.log覆盖写入test input】
f = open("test.log","w") f.write("test input\n") f.write("test input\n") f.write("test input\n") f.write("test input\n") f.colse

f
= open("test.log","r")
print(f.read()) 【读文件里所有内容】 f = open("test.log","r") print(f.readline())  【一次只读一行】 f = open("test.log","r") print(f.readlines()) 【以列表形式全读出来】
  • python格式化打印

name = input("name:")
age = input("age:")
job = input("job:")
【方法一:】 msg
= ''' Infomation of %s: name:%s age:%s job:%s '''%(name,name,age,job) print(msg)
【方法二:】
print("Infomation of %s \n name:%s\n age:%s \n job:%s"%(name,name,age,job))

 

  •  流程控制

 使用while实现猜数字小游戏:

【无限次数猜】
locky_num
= 19 input_num = -1 while locky_num != input_num: input_num=int(input("Please input number:")) if input_num > locky_num: print("tai gao le....") elif input_num < locky_num: print("tai di le .....") print("Bingo")
【只能猜三次】
guess_count=0
lucky_num=19

while guess_count < 3:
#    print("guess_count:",guess_count)
    input_num=int(input("Plese input num:"))
    if input_num > lucky_num:
        print("tai gao le.....")
    elif input_num < lucky_num:
        print("tai xiao le.....")
    else:
        print("Bingo....")
        break
    guess_count += 1
else:
    print("too may number 33333....")

使用for实现猜数字小游戏:

lucky_num=19
input_num=-1
for i in range(3):
    input_num=int(input("Please input number:"))
    if input_num > lucky_num:
        print("tai gao le ....")
    elif input_num < lucky_num:
        print("tai di le .....")
    else:
        print("Bingo")
        break
else:
    print("too may 333333")
  •  嵌套循环

【例1:】
count = 0
while True:
print(count)
count += 1
if count > 5:
break

【例2:】
for j in range(5):
for i in range(10):
if i <5:
continue
        if i > 8:
break
print(i)

 

posted @ 2015-12-27 10:10  唐胜伟  阅读(445)  评论(0编辑  收藏  举报