大一下才开始学python()
军训无聊看书用本篇文章记录下python学习进程
从零开始的python学习!
这一章就是一些基本操作
以及对于python中部分内容的简单介绍

小贴士 代码块以及缩进对其

Python代码块比C语言要简介,可以仅仅通过缩进来表示一个代码块的部分,无需要过多的大括号

输入/输出

输出:print语句

以下是help()函数对print的解释

print(*args, sep=' ', end='\n', file=None, flush=False)
Prints the values to a stream, or to sys.stdout by default.
sep
string inserted between values, default a space.
end
string appended after the last value, default a newline.
file
a file-like object (stream); defaults to the current sys.stdout.
flush
whether to forcibly flush the stream.

本函数比较简单便不在赘述
help()函数讲的还是很清楚的

输入:input语句

以下是help()函数对input的解释

input(prompt=None, /)
Read a string from standard input. The trailing newline is stripped.

The prompt string, if given, is printed to standard output without a
trailing newline before reading input.

If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
On *nix systems, readline is used if available.

本函数比较简单便不在赘述
help()函数讲的还是很清楚的
注意input只能从键盘读入字符串,如果想要转成其他类型可以使用一些内建函数
如:

>>> n = int(input()) # 将输入内容转化成整型

注释

Python语言中注释用的是’#’, 在同一行内,#后全部为注释

#这是注释

文档字符串(特别注释) || 暂定版本

根据Python核心编程第二版书中介绍:
文档字符串是一种特别的注释,可以在模块、类或者函数的起始添加一个字符串,起到在线文档的功能
与普通注释不同,文档字符串可以在运行时访问,也可以用来自动生成文档

def foo():
"This is a doc string."
return True

ps:这块看的不是很明白就把书上的话抄下来了,后面再研究研究

操作符

算数操作符:

+ #加法
- #减法
* #乘法
/ #传统除法(地板除,取比商小的最大整数)
// #浮点除法,对结果进行四舍五入(其实也就是我们平时正常用到的除法)
** #乘方

比较操作符:
由于比较操作符与c基本一致,这里只写一个我之前没怎么见到过的比较操作符

<> #和!=相同,算是过时的不等于符号,不推荐使用

逻辑运算符:

and #与
or #或
not #非

使用逻辑运算符可以将任意表达式连接到一起,并得到一个布尔值
下面例举一个python特有的逻辑运算方式

>>> 1 < 2 < 3
True

这是python特有的表达式,可以简化python代码,但是在其他大部分语言不合法

变量和赋值

变量名规则受C语言影响,和C语言差不多
Python是动态类型语言,不需要预先声明变量类型,变量的类型和值在复制那一刻被初始化,赋值通过等号进行

>>> num = 1
>>> string = 'hello'
>>> counter = counter + 1

python中不支持C语言中的–和++,在python中–n == n, ++n == n

数字

Python支持五种基本数字类型,其中有三种是整型类型

  • 有符号整型
    • 长整型
    • 布尔型
  • 浮点型
  • 复数
int
long
bool
float
complex

布尔值通常以常值True和False来表示
若在数字环境中True == 1,False == 0

第六种数字类型decimal,这个数字类型用于十进制浮点型,需要先导入decimal模块才能使用

字符串

这一部分看的半懂不懂的直接把书上抄下来了,后面研究一下再改
Python中字符串被定义为引号之间的字符集合
Python支持使用成对的但应好或者双引号,三引号(三个连续的单引号或双引号)可以用来包含特殊字符

使用索引操作符([])和切片操作符([:])可以得到子字符串
字符串有其特有的索引规则:第一个字符的索引是0,最后一个字符的索引是-1

>>> pystr = 'python'
>>> pystr[0]
'p'
>>> pystr[1:3]
'yt'
>>> pystr[0:10000]
'python'
>>> pystr[0:5]
'pytho'
>>> pystr[0:-1]
'pytho'
>>> pystr[:]
'python'
>>> pystr[:3]
'pyt'
>>> pystr[2:]
'thon'

注意:空格在字符串中也计入索引
如果需要令换行符也计入索引,需要使用三引号

>>> str = '''Hello\nWorld'''
>>> str
'Hello\nWorld'
>>> str[5]
'\n'

加号(+)用于字符串链接运算,星号(*)用于字符串重复

>>> str1 = 'Hello'
>>> str2 = 'World'
>>> str1 + str2
'HelloWorld'
>>> str1 + ' ' + str2
'Hello World'
>>> str1 * 2
'HelloHello'
>>> '1' * 10
'1111111111'

列表和元组

列表和元组可以堪称是普通的“数组”
和数组一样通过从0开始的数组索引访问元素
列表元素用[]包裹,元组元素用()包裹,不可以更改
元组可以看做是只读(不能被修改)的列表
通过切片运算可以得到子集,详情请看2.6 字符串

>>> alist = [1,2,3,4]
>>> print(alist)
[1,2,3,4]
>>> print(alist[1])
2
>>> print(alist[1:3])
[2,3]

>>> alist2 = (1,2,3,4)
>>> print(alist)
(1,2,3,4)
>>> print(alist[1])
2
>>> print(alist[1:3])
(2,3)

字典

Ps:字典好像C语言中没有,算是我在python中接触到的第一个全新的事物,以下大部分为对书的引用
字典是Python中的映射数据类型,由键-值对构成
几乎索引类型的Python对象都可以用作键,不过一般还是以数字或者字符串最为常用
值可以是任意类型的P樱桃红对象,字典元素用大括号{}包裹

>>> aDict = {'host': 'earth'} # 创建字典
>>> aDict['port'] = 80 # 字典内容添加
>>> print(aDict)
{'host': 'earth', 'port': 80}

>>> print(aDict.keys())
dict_keys(['host', 'port'])

>>> print(aDict['host'])
'earth'
>>>for key in aDict:
print(key,aDict[key])

host earth
port 80

if语句

和C语言的if语句差不多,不再赘述
对了Python中的 else if 可以缩写成 elif
if语句的使用需要加:
下面是例子

>>> if(1 == 1):
x = 1
elif(1 == 2):
x = 2
else:
x = 3
>>> print(x)
1

while循环

逻辑和C语言的while一样,具体和C语言中的while语句的区别和if与C语言中的if的区别一样
不再赘述

for循环和range()内建函数

Python的for循环和C语言的for循环不太一样
Python中的for接受可迭代对象(例如序列或迭代器)作为其参数,每次迭代其中一个元素

>>> i=0
>>> for item in ['hello', 'happy', 'hi']:
i = i + 1
print(item, i)

hello 1
happy 2
hi 3

这种情况print会默认在结尾打印一个换行符,只要给print中的关键变量end赋值就可以更改结尾的打印字符

>>> print(item, end = "")
hellohappyhi
>>> print(item, end = " ")
hello happy hi
>>> print(item, end = "1")
hello1happy1hi1

带逗号的print语句输出的元素之间会自动添加一个空格
如果不想要这些空格操作类似上一个更改结尾打印的换行符,只需要给print中的关键变量sep赋值就可以更改两个元素之间的字符

range()函数可以用来生成一个数字列表

>>> for num in range(3):
print(num)

0
1
2

>>> for num in range(2, 5):
print(num)

2
3
4

range()函数和len()函数通常一起用于字符串索引
这里我们要显示每一个元素及其索引值

>>> foo = 'abc'
>>> for n in range(len(foo)):
print(foo[n],'(%d)'%n)

a (0)
b (1)
c (2)

这些循环有个约束,要么循环索引,要么循环元素
enumerate()函数可以同时做到这两点

>>> foo = 'abc'
>>> for n, m in enumerate(foo):
print(m,'(%d)'%n)

a (0)
b (1)
c (2)

列表解析

使用的中括号[ xxxx ],它表示根据条件推导出一个新的列表
这让我们可以在一行内将所有值放到一个列表中

>>> s = [x ** 2 for x in range(4)]
>>> for i in s:
print(i)

0
1
4
9

列表解析还能做更复杂的事情,比如挑选出符合要求的值放入列表

>>> s = [x ** 2 for x in range(8) if not x % 2]
>>> for i in s:
print(i)

0
4
16
36

文件和内建函数open() file()

(C语言的文件操作都没整明白就开始学python的文件操作了)
如何打开文件

handle = open(file_name, access_mode = 'r')
# file_name 变量包含我们希望打开文件的字符串名字
# access_mode 中'r'表示只读,'w'表示写入,'a'表示添加

如果open()成功,一个文件对象句柄会被返回,后续所有文件操作都必须通过此文件句柄进行
当一个文件对象被返回时,我们就可以访问他的一些方法
文件对象的方法属性也必须通过句点属性标识法访问

属性的定义:属性是与数据相关的项目。属性可以是简单的数据值,也可以是可执行的对象如函数和方法
我们需要使用句点属性标识法访问对象属性,也就是在对象名和属性名之间加一个句点(.)
比如:object.attribute
file()函数功能等同于open()
file更确切的表明它是一个工厂函数(生成文件对象)

错误和异常(未完待续)

Python允许在程序运行时检测错误
感觉就是debug嘛
要给代码添加错误检测以及异常处理,只要将他们‘封装’在try-except语句当中
try之后的代码组是你打算管理的代码
except之后的代码组是你处理错误的代码
具体操作还没试过()
后面熟悉了会再加上更多的理解

函数(未完待续)

如何定义函数

def fuction_name([aguments]):
"optional documentation string"
function_suite

至于引号里是啥我也不是很了解()
python的函数还要研究一下

函数的调用

和C语言没啥区别,就直接写出来就行了,小括号不能省略

默认参数

函数的参数可以有一个默认值,如果提供默认值,在函数定义中,参数以赋值语句的形式提供
其实这只是提供默认参数的语法,它表示函数调用时如果没用提供这个参数,就取这个值作为默认值

>>> def foo(debug=True): # 括号里面表示如果后续没给debug赋值,debug就取默认值True
......

类(未完待续)

类是面向对象编程的核心,它扮演相关数据及逻辑容器的角色
提供了创建“真实”对象(也就是实例)的蓝图
因为Python并不强求你以面向对象的方式编程,所以此处不详细讲解(操,早说啊)
速通后查缺补漏再找找相关例子理解一下吧

模块(未完待续)

Python 模块是一个 Python 文件,定义了各种功能接口。把复杂的功能封装为模块(又称为库),将功能实现的细节隐藏起来,使用该模块(库)的程序员不需要了解实现的细节。通过调用模块封装好的功能,可以用仅仅几行 Python 代码实现某项复杂的功能,例如可以用一行代码就实现一个 Web 服务器。

如何导入模块

import 模块名代码块1

如何访问一个模块函数或访问一个模块变量

导入完成后,可以用句点属性标识法访问模块的属性(函数或者变量)

>>> import sys
>>> sys.stdout.write('Hello World!\n') # write 需要手动输入换行符
Hello World!
>>> print(sys.platform)
'win32'

入门篇到这里就结束拉(应该)
缺的内容后面会慢慢补上的QAQ