带着问题学 python

爬虫框架还是 python 专业啊,一直在用 java, 现在决定尝尝鲜,先学 python,再学数据采集,爬虫框架。

okay,带着问题,先从 python 开始学起。

1. python 如何引用其他的文件?

python 是以模块的形式导入其他文件的。

什么是模块?模块就是包含一组相关函数的文件。

先创建一个 moduletest 文件

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

'a moule test example 这里是模块的文档注释,任何模块的 first string 就被当做是模块的文档注释'

# 这里 __author__ 是表示作者,当公开源代码后别人就可以看到你的名字
__author__ = 'reycg'


# 定义一个方法
def test():
  print('hello')

# 当在命令行中运行该模块文件时,
# python 解释器就会把一个特殊变量 __name__ 设置为 __main__,
# 如果在其他地方导入 if 判断就会失败。这种 if 测试的常见用途就是单元测试.
if __name__=='__main__':
  test()

在一个新 python 文件中调用这个模块。

1. 先使用 import 将模块导入

2. 通过指定模块名称和函数命令,中间中句点(.)的方式调用它

import moduletest

moduletest.test()

运行该文件成功的得到 hello 输出,完美~

2. python 的各种规范

  1. 变量命名:以字母开头,单词之间使用下划线分隔,如 test_item
  2. 脚本名称:以 .py 结尾
  3. 注释:以 # 号开头
  4. 字符串尽量使用单引号包含,只有特殊情况(如文本中又包含引号)的情况下才使用双引号

3. 如何添加一个新函数?

# 定义一个函数
# def 是关键字,接下来就是函数的定义
# 第一行是函数头,后面是函数体
def test():
  print('hello') # 从这行开始是函数体,函数体应该整体缩进一级
  print('world')

 4. 字符串有哪些有用的方法?

 下面只是 python string 的部分方法介绍,完整方法可参见 https://docs.python.org/3.6/library/stdtypes.html#string-methods

# 字符串就是一个序列,也就是由其他值组成的有序集合

# 这里可以把 fruit 看做是一个 java 数组
fruit='apple'
print(fruit[0])


# 获取字符串的长度
print(len('banana'))


# 对字符串遍历,有两种, 推荐使用 for 这种
for letter in 'banana':
  print(letter) # 此处别忘了缩进

vegetable = 'tomato'
index = 0
while index < len(vegetable):
  letter = vegetable[index]
  print(letter)
  index += 1

# 和 java 一样,字符串是不可变的
# test_str = 'lalala'
# test_str[0] = 'o'
# 上面信息会报错,错误信息如下 
# TypeError: 'str' object does not support item assignment

# 对字符串分割
split_str = 'a-b-c-d'
print(split_str.split('-'))

# 拼接字符串
join_str_list = ['a', 'b', 'c', 'd']
print('-'.join(join_str_list)) # 这里就是用 - 拼接后的值

# 查看子字符串是否包含在字符串中
child_str = 'abc'
print('abcd'.find(child_str)) # 如果存在就返回首字母下标,不存在返回 -

 5. python 如何读写文件?

# 当读取文件或写入文件时,默认会在当前目录寻找它

# 写入文件
# 使用 w 模式来打开, 如果文件已经存在
# 会将文件内的旧数据清除掉,并重新开始写入
fout = open('output.txt', 'w') 

testline = 'this is a test line'
charLength = fout.write(testline) # 返回值是写入的字符数量
print(charLength)

# 写入的参数必须是字符串才可以
x = 123
fout.write(str(x))
fout.close() # 写入后应该关闭文件,如果不关闭问,只能在程序执行结束的时候关闭


# 读取文件
fread = open('output.txt', 'r') # 使用 r 模式打开,只能读取文件
print(fread.read())
fread.close()

 5. python 如何处理 json

扫描二维码关注公众号,回复: 3879535 查看本文章
# 导入 json 库
import json

# json.dumps
# 将 python 对象编码成 json 字符串
modelDict = {
  'name': '大众朗逸',
  'brandName' : '大众',
  'id': 1
}

outputModelJson = json.dumps(modelDict, ensure_ascii=False)
print('dumps model dict' + outputModelJson)
# 写入 model.json 文件
fout=open('model.json', 'w', encoding='UTF-8')
fout.write(outputModelJson)
fout.close()


# json.loads 将已编码的 json 字符串解码为 python 对象
finput=open('model.json', 'r', encoding='UTF-8')
inputModelJson = finput.read()
inputModel = json.loads(inputModelJson)
print(inputModel['name'])

猜你喜欢

转载自www.cnblogs.com/reycg-blog/p/9887393.html