Py学习  »  Python

​手把手带你学 Python3 | 编程基础与规范代码

生信菜鸟团 • 4 年前 • 353 次点击  

这个标题说很大,因为是编程,但是本篇还是接地气的,所谓夯实基础决定上层建筑。

如果还没有安装入门环境首选 pycharm ,可以参见 三剑客 PyCharm 小试


学习编程语言的起点绕不过语法基础,因此本期推送一篇基础笔记,非常适合初学者收藏查询,顺手分享给需要的小伙伴吧~~

变量

变量是针对常量来提出的,常量是指在程序中不会改变的量,而变量就可以用于储存不同的计算结果或者不同类型的数据。变量的特点就是可以修改与赋值。

Python 语言中,共有以下五种标准变量类型:

  • 数字

  • 字符串

  • 列表

  • 元祖

  • 字典

在具体展开这这些变量类型之前,我们需要强调一个用于变量命名的规则:

  • 变量名只能出现字母、数字及下划线,且不能以数字开头;

  • 变量名不能与关键字重复,例如:

and as assert break class continue def del elif else except exec finally for from global if in import is lambda not or pass print raise return try while with yield

  • 变量名不能重复,即一个变量名对应一个变量。

在搜索规范的过程中,搜索到一个 PEP8 编写规则,即Python Enhancement Proposal 的缩写,指Python的增强建议书,增加规范编码性,提高可读性。以下摘录部分变量命名的规则,具体规则可以参见PEP 8 - Python代码规范指南。

由于Python库的命名约定本身有点混乱,因此可能命名永远不会一致。但是,还是有必要提及推荐的命名标准,作为内部一致性的首选。

Naming Conventions 命名规范
  Overriding Principle 首要原则
    Descriptive Naming Styles 命名风格描述
    Prescriptive Naming Conventions 约定俗成的命名
    Names to Avoid 需要避免的命名方式
    Package and Module Names 包名和模块名情况
    Class Names 集名情况
    Exception Names 异常名解决
    Global Variable Names 全局变量名
    Function Names 函数名
    Function and method arguments 函数和参数
    Method Names and Instance Variables 变量实例
    Constants 常量
    Designing for inheritance 设计传承


详细参见 http://legacy.python.org/dev/peps/pep-0008/


PEP 8 -- Style Guide for Python Code

突然有一种入门门槛变高的感觉,一个命名就包含这么多规则需要遵循。其实还不仅仅如此,还有:

  • 代码规则

  • 文档编排与描述规则

  • 空格的使用

  • 注释规则

其实说人话就是,写的代码看起来会很高级。虽然复杂,但是如果在早期就能将这些规则熟悉,养成习惯,也不失为一件好事。

当然,三剑客也不是浪得虚名的,可以直接调用autopep8用于规范代码,实在是太友好了。安装并不麻烦,首先在终端安装autopep8模块,

pip install autopep8

windows下要稍微麻烦一点,首先你需要知道python在电脑中的安装路径,找到开始菜单中的python右键属性,找到程序路径。

一般pip应用程序在上级文件夹中的 Scripts中,然后在 pycharm中的终端进入该路径后输入代码pip install autopep8,当然使用绝对路径也是一样的。

安装成功了以后,在pycharm的菜单栏中找到Settings-Tools-External Tools ,对话框有以下几个输入的位置:

  • Name 自定义名称就好;

  • Program栏输入autopep8.exe路径,与pip安装在同一路径下;

  • Arguments栏中输入--in-place --aggressive --aggressive $FilePath$

  • Working directory输入$ProjectFileDir$

    然后确定就好了。

简单来看一下效果,这里从PEP8官方指南中摘录了一段不规范的代码作为测试,

使用autopep8 以后自动修改以后的规范代码。例子中展示的是 「缩进」 的规范编写方式。也就是直接使用模块就能智能修改。


简单变量类型

简单变量由数字和字符串两部分,这也是构成三大数据结构的要素。

  • 数字

    数字类型可以分为整型(int)和浮点型(float),从字面上就能理解一个是用于储存整数,一个储存小数。

  num1 = 10
  print(type(num1))
  print()
  num1 = float(num1)
  print(type(num1))

  <class 'int'>

  <class 'float'>

这里要提一个检索时的小笔记,如下。在上述例子中只是展示数字类型及类型转换,因此在此不作深入的探讨~

python判断变量类型时,为什么不推荐使用type()方法

在old-style class中,任意instance的type都是'instance'。所以绝对不能用type来判断其类型。

1、type可以只接收一个参数,打印其未知的所属的类型;而isinstance只能判断是否属于某个已知类型,所以,isinstance效率更高一些

2、isinstance可以判断子类对象是否继承于父类;而type不可以,type只能把类对象识别为instance实例类型,即老式类都是通过instance创建的

所以,type主要用于获取未知变量的类型,isinstance主要用于判断A类是否继承于B类。


Warning

New-style classes has been integrated into Python 2.7 and old-style classes has been removed in Python 3. Please refer to the Python tutorial and the Descriptor HowTo Guide for more up-to-date documentation about classes and descriptors respectively.


而python3版本中已删除旧版本的 old-style class,因此上述材料看看就好~

  • 字符串

    字符串就是一串字符。python用两个单引号或两个双引号标记一段字符,但是要注意字符串本身是否需要书写单引号,例如:

  str1 = 'I'm a superman'

    File "C:/Users/user/PycharmProjects/Test/test1.py", line 1
      str1 = '
I'm a superman'
                ^
  SyntaxError: invalid syntax

因此需要修改为:

  str1 = 'I\'m a superman'
  print(str1)
  str2 = "I'm a superman"
  print(str2)

  I'm a superman
  I'
m a superman

大小写修改函数有lower upper capitalize以及title,略加尝试就能直观看到不同~

  • 运算

    除了基础「计算器」中包含的加减乘除,也包含乘方、取整等运算。位运算感觉接触不多就先不过多描述。这里要提一点的是,字符串也可以进行加法运算,乘法运算理解为重复字符串即可。要注意的是字符串是不能与数字混加的,因此需要提前转换。

  age = 2
  text = 'age:'
  combine = text + str(age)
  print(combine)
  print(text,age)

  age:2
  age: 2

转义字符在前面已经提及过了,还可以使用\n \t表示换行符和制表符,感受一下~

  text = 'Python\nC\nPerl'
  text1 = 'Python\tC\tPerl'
  print(text)
  print()
  print(text1)

  Python
  C
  Perl

  Python    C   Perl


好了,这一周的python入门就到这里,还剩三个数据类型将在下一周推送中发出。欢迎围观,下期见哈

参考资料

http://legacy.python.org/dev/peps/pep-0008/


▼ 如果你生信基本技能已经入门,需要提高自己,请关注下面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。

▼ 如果你是初学者,请关注下面的生信菜鸟团,了解生信基础名词,概念,扎实的打好基础,争取早日入门。

猜你喜欢:

【热点】三剑客 PyCharm 小试

青蒿素科普贴

2019年五篇Cell文献阅读集锦

circRNA实验新更 - circRNA实验设计优化方案笔记

植物杂志 PP & PJ 都在用的研究思路

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/35811
 
353 次点击