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=freddy2 Traceback (most recent call last):3 File "", line 1, in 
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" inname
True>>> 2 inname
True>>> if "aa" inname:
...print("aaa")
...
aaa>>>

【判读列表中有没有haha这个值】

name= ['freddy','aaa','ccc','freddy','ddd']if 'haha' not inname:print("name list not haha")

【判读“t”是不是一个列表】>>> type(t) islist

True

元组列表类型转换

元组转换成列表:


>>> t=('123','123','123')>>>t
('123', '123', '123')>>>type(t)
>>>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(): #字典无序
printk,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= 19input_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

【只能猜三次】

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 
else:print("too may number 33333....")

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

lucky_num=19input_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 
else:print("too may 333333")

嵌套循环

【例1:】

count=0whileTrue: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)