Python基础学习

一、Python简介

1.1 Python简介

Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言

  • Python是一种解释性语言:这意味开发过程中没有了编译这个环节。类似PHP和Perl语言
  • Python是交互语言:这意味着,你可以在一个Python提示符>>>后直接执行代码
  • Python是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程技术

1.2 Python的特点

1.2.1 优点

  1. 易于学习 :Python有相对较少的关键字,结构简单,和一个明确定义的语法,学起来更加简单
  2. 易于阅读:Python代码定义清晰
  3. 易于维护:Python的源代码是想到容易维护的
  4. 一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
  5. 互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
  6. 可移植性:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
  7. 可拓展:可以使用c或c++完成部分编译
  8. 数据库:Python提供所有主要的商业数据库的接口。
  9. GUI编程: Python支持GUI可以创建和移植到许多系统调用。
  10. 可嵌入:可以将Python嵌入到c/c++程序,让你的程序的用户获得脚本化的能力

1.2.2缺点

  1. 运行速度慢,但可以用c++改写关键部分,提高速度
  2. 国内市场较小
  3. 中文资料匮乏
  4. 构架选择太多

二、Python的变量类型

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

2.1 Numbers(数字)

  • int(有符号整型)
  • long(长整型,也可以代表8进制和16进制)
  • float(浮点型)
  • complex(复数)

2.2 Python 列表(List)

list = ['a',1,"2"]
list2 = [1,2,3]
print(list)         # 输出完整列表
print(list[0])      # 输出列表的第一个元素
print(list[1:3])    # 输出第二个至第三个元素 
print(list[2:])     # 输出从第三个开始至列表末尾的所有元素
print(list)*2       # 输出列表两次
print(list+list2)   # 打印组合的列表

2.3 Python 元组

元组是另一个数据类型,类似于 List(列表)。
元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
 
print tuple               # 输出完整元组
print tuple[0]            # 输出元组的第一个元素
print tuple[1:3]          # 输出第二个至第四个(不包含)的元素 
print tuple[2:]           # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2       # 输出元组两次
print tuple + tinytuple   # 打印组合的元组

2.4 Python 字典(dictionary)

  • 字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
  • 两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
  • 字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
 
tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
 
 
print dict['one']          # 输出键为'one' 的值
print dict[2]              # 输出键为 2 的值
print tinydict             # 输出完整的字典
print tinydict.keys()      # 输出所有键
print tinydict.values()    # 输出所有值

三、Python 函数

3.1 定义一个函数

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的
    return相当于返回 None。
def printme( str ):
   "打印传入的字符串到标准显示设备上"
   print str
   return

3.2 不定长参数

加了星号(*)的变量名会存放所有未命名的变量参数。

def aa(*str):
    print(str) 
    return

aa("aa",12,"w") # ("aa",12,"w")

3.3 匿名函数(lambda)

python 使用 lambda 来创建匿名函数。

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
sum = lambda num1,num2:num1+num2

print(sum(10,20)) # 30

四、Python 文件的I/O

4.1 打印到屏幕

最简单的输出方法是用print语句

4.2 读取键盘输入

  • raw_input
  • input

4.1.1 raw_input

raw_input 在Python 2.x中,在Python 3.x不能使用,可用input替换
raw_input([prompt]) 函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符

str = raw_input("请输入:")

print("你输入的内容是"+str)

4.1.2 input

nput([prompt]) 函数和 raw_input([prompt]) 函数基本类似,但是 input 可以接收一个Python表达式作为输入,并将运算结果返回。

str = input("请输入:")

print("你输入的内容是"+str)

4.3 打开和关闭文件

4.3.1 open()

你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。

file object = open(file_name [, access_mode][, buffering])

# open完整语法格式
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
  • file_name: 访问的文件名称的字符串值
  • access_mode: 打开文件的模式: 只读,写入,追加等。这个参数是非强制的,默认为只读®
  • buffering: 如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型
  • opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。

不同模式打开文件的完全列表:

t	文本模式 (默认)。
x	写模式,新建一个文件,如果该文件已存在则会报错。
b	二进制模式。
+	打开一个文件进行更新(可读可写)。
U	通用换行模式(不推荐)。
r	以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb	以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+	打开一个文件用于读写。文件指针将会放在文件的开头。
rb+	以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w	打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb	以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+	打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+	以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a	打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab	以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+	打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+	以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

4.3.2 File对象的属性

属性描述
file.closed返回true如果文件已被关闭,否则返回false。
file.mode返回被打开文件的访问模式。
file.name返回文件的名称。
file.softspace如果用print输出后,必须跟一个空格符,则返回false。否则返回true。

4.4 文件的读写

file = open("aaa.txt","a") # 打开文件,只写入,指针在最后
file.write("\nhello") # 换行写入内容
file.close() # 关闭文件

file = open("aaa.txt","r+") # 打开文件,读写,文件指针将会放在文件的开头。
str = file.read()
print(str(10)) # 读取10个字符
file.close()

4.5 文件的重命名和删除文件

4.5.1 rename(old_name,nwe_name)

需要导入os库

import os

# 重命名文件test1.txt到test2.txt。
os.rename( "test1.txt", "test2.txt" )

4.5.2 remove()

你可以用remove()方法删除文件,需要提供要删除的文件名作为参数。

import os
 
# 删除一个已经存在的文件test2.txt
os.remove("test2.txt")

4.6 Python里的目录

4.6.1 mkdir()

可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。

import os
 
# 创建目录test
os.mkdir("test")

4.6.2 getcwd()

import os

# 给出当前的目录
str = os.getcwd()
print(str)

4.6.3 rmdir()

rmdir()方法删除目录,目录名称以参数传递。
在删除这个目录之前,它的所有内容应该先被清除。

import os
 
# 删除”/tmp/test”目录
os.rmdir( "/tmp/test"  )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值