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)