Python-1基础知识点

Python-1 基础知识点

  • 1. Python版本
  • 2. 基础知识
    • 2.1 标识符
    • 2.2 关键字
    • 2.3 注释
    • 2.4 缩进
    • 2.5 语句
      • 2.5.1 空行
      • 2.5.2 多行语句
      • 2.5.3 同一行显示多条语句
      • 2.5.4 多个语句构成代码组
    • 2.6 数据类型
    • 2.7 字符串
    • 2.8 输入和输出
      • 2.8.1 输入函数 input()
      • 2.8.2 输出函数 print()
    • 2.9 import 与 from...import

1. Python版本

我是用的Python3.7.4版本,基于Spyder学习的。
Python版本

2. 基础知识

2.1 标识符

  1. 变量名由字母、数字、下划线组成
  2. 第一个字符只能是字母或下划线,不能是数字
  3. 区分大小写
  4. 在Python3中可以用中文

例1:

_hhjj998=500
print( _hhjj998 )

#输出:
#500

例2:

2x=500
print( x )

#输出:
#SyntaxError: invalid syntax(语法错误:无效的语法)

例3:

学习笔记=500
print( 学习笔记 )

#输出:
#500

2.2 关键字

也叫保留字,注意:我们在定义标识符时,不能用关键字。
可以查看keyword 模块,显示当前Python中的所有关键字。

import keyword
print (keyword.kwlist)

#输出:
#['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

2.3 注释

注释起说明文档的作用,还可以进行代码的调试,将暂时用不到的代码注释掉。

  1. 单行注释:以#开头
  2. 多行注释:(1)每行都以 # 开头;(2) ‘’’ ;(3) “”" 注意:是英文输入法下的’’'和""",并且成对出现
  3. 编码注释:放在第一行 # -- coding: utf-8 --
  4. 平台注释:如果需要使Python程序运行在Windows平台上,需在Python文件的上方加上 #!/usr/bin/python 。

例1:

#单行注释
print('hello')

例2:

#多行注释
#第一种方法
print('hello')

例3:

'''
多行注释
第二种方法
'''
print('hello')

例4:

"""
多行注释
第三种方法
"""
print('hello')

2.4 缩进

用缩进表示代码块,不需要{},同一个代码块必须要缩进相同空格数。
注:同一个级别的要保持缩进数一样,如例1中if和else的两个print虽然没有缩进相同的数目,但运行无误,但当else和if的缩进数不一致时,会出错(例2),当if中的两个print缩进数不一致时,也会出错(例3)。

例1:

first=15
second=20
if first>second:
    print('第一个数较大')
    print('缩进')
else :
        print('第二个数较大')
        print('缩进')
        
#输出:
#第二个数较大
#缩进

例2:

first=15
second=20
if first>second:
    print('第一个数较大')
    print('缩进')
  else :#没有与if缩进一致
        print('第二个数较大')
        print('缩进')
        
#输出:
#IndentationError: unindent does not match any outer indentation level

例3:

first=15
second=20
if first>second:
      print('第一个数较大')
    print('缩进')#(都属于if)没有与前一个print缩进一致
else :
        print('第二个数较大')
        print('缩进')
        
#输出:
#IndentationError: unindent does not match any outer indentation level

2.5 语句

2.5.1 空行

空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

例:

a=15
b=20
print(a+b)

c=10
d=20
print(c*d)

#输出:
#35
#200

2.5.2 多行语句

通常情况下,一行写一条语句,但是如果一条语句过长,则需要换行写,用反斜杠 \ 。如果有 [], {}, 或 () ,不需要反斜杠 \,也可以加(例3)。

例1:

a=15
b=20
c=10
y1=a+b+c-a*b-a*c-b*c+a*b*c#一行表示
y2=a+b+c \
   -a*b-a*c-b*c+ \
   a*b*c#多行表示
y3=[a+b+c,
    -a*b-a*c-b*c,a*b*c ]#带有[]的多行表示
print(y1,y2,sum(y3))

#输出:
#2395 2395 2395

例2:

a=15
b=20
c=10
y2=a+b+c 
   -a*b-a*c-b*c+ 
   a*b*c#多行表示
print(y2)

#输出:
#IndentationError: unexpected indent(没有加\)

例3:

a=15
b=20
c=10
y3=[a+b+c,\
    -a*b-a*c-b*c,a*b*c ]#带有[]的多行表示
print(sum(y3))

#输出:
#2395

2.5.3 同一行显示多条语句

当在同一行中使用多条语句时,语句之间使用分号 ; (英文状态下)隔开。

例:

a=15;b=20;print(a+b)

#输出:
#35

2.5.4 多个语句构成代码组

缩进相同的语句构成了一个代码组(也叫代码块)。
例如:if、while、def和class等,第一行要以这些关键字起头,以:(英文冒号)结束,该行之后的一行或多行代码构成代码组。将首行及后面的代码组称为一个子句(clause)。

例:

a=15;b=20;
if a>b : 
   a=a*3
   b=b-2
   print(a+b)
else : 
     a=a/3
     b=b+2
     print(a+b)
     
#输出:
#27.0  

2.6 数据类型

包括: 整数、布尔型、浮点数和复数。
整数:int ,如1,21,333
布尔型:bool ,如true,false
浮点型:float , 如 1.34、2E-3
复数:complex , 如 12 + 2j、 1.4 - 2.6j

2.7 字符串

在Python中,字符串用单引号或双引号括起来,两者作用相同,用三引号(’’'或""")可以指定一个多行的字符串。
转义符 ‘’,使用r可以让反斜杠不发生转义。 如 r"this is my notes \n" 则\n会显示,并不是换行。(注意r后没有空格)

  • 将字符串连接在一起,* 将运算符重复
    Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
    Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
    字符串的截取格式:变量[头下标:尾下标:步长]

例1:

A1='My python !'#单引号表示
A2="My python !"#双引号表示
A3='''My 
    python !'''#单三引号表示多行
A4="""My 
    python !"""#双三引号表示多行
A5='My \n python !'#\转义符(\n表示换行)
A6= r'My \n python !'#前面加上r不转义
A7='My'+' python'+'!'#将字符串连接在一起
A8='My'+' python'+('!'*4)#!重复出现4次
print(A1)
print(A2)
print(A3)
print(A4)
print(A5)
print(A6)
print(A7)
print(A8)

#输出:
#My python !
#My python !
#My 
#    python !
#My 
#    python !
#My 
# python !
#My \n python !
#My python!
#My python!!!!

例2:

A1='python'
print(A1)#输出字符串
print(A1[0:-1])#输出第一个到倒数第二个的字符
print(A1[0])#输出第一个字符
print(A1[1:4])#输出从第二个到第四个字符
print(A1[2:])#输出从第三个开始之后的字符

#输出:
#python
#pytho
#p
#yth
#thon

2.8 输入和输出

2.8.1 输入函数 input()

input() 返回的是一个字符串
如果需要获得整数,需要用int() ,同理,浮点数用float()

例1:

a=int(input("请输入a:"))
b=int(input("请输入b:"))
print(a+b)

#输出:
#请输入a:5

#请输入b:10
#15

例2:

num=input("请输入一个小数:")
print("您输入的小数为:",float(num))

#输出:
#请输入一个小数:0.12
#您输入的小数为: 0.12

2.8.2 输出函数 print()

print遇到逗号,会输出一个空格
注意:默认的输出是换行的,如果不换行输出,需要加上 end=""

例1:

print('This','is','my','notes')
print('15+ 20 =', 12 + 20)

#输出:
#This is my notes
#15+ 20 = 32

例2:

a=15;b=20;
print("默认的输出(换行)");print(a);print(b);print('**')
print("不换行的输出");print(a,end=" ");print(b,end="hello")

#输出:
#默认的输出(换行)
#15
#20
#**
#不换行的输出
#15 20hello

2.9 import 与 from…import

import 和 from…import 用来导入相应模块(模块就是一个.py文件)。类似于C语言中的include头文件。
导入整个模块: import 某个模块
导入某个模块中的某个函数:from 某个模块 import 某个函数
导入某个模块中的多个函数:from 某个模块 import函数1, 函数2
导入某个模块中的全部函数:from 某个模块 import *
注:
from A import b,相当于import A;b = A.b,此过程中有一个隐含的赋值的过程。
import A as B 给予A库一个B的别称,目的是为了好记,可以按照自己的意愿给模块起别名。

例1:导入整个模块(使用 import 模块 时,如果使用模块内的成员,必须用 模块. 作为前缀)

# 导入sys整个模块
import sys
# 使用sys模块名作为前缀来访问模块中的成员
print(sys.argv[0])#sys模块下的argv变量用于获取运行Python程序的命令行参数,其中argv[0]用于获取当前Python程序的存储路径。

#输出:
#C:\Users\mengma\Desktop\hello.py

例2:导入整个模块时,为该模块起别名

# 导入sys整个模块,并指定别名为s
import sys as s
# 使用s模块别名作为前缀来访问模块中的成员
print(s.argv[0])

#输出:
#C:\Users\mengma\Desktop\hello.py

例3:导入多个模块,用逗号隔开

   # 导入sys、os两个模块
    import sys,os
    # 使用模块名作为前缀来访问模块中的成员
    print(sys.argv[0])
    # os模块的sep变量代表平台上的路径分隔符
    print(os.sep)

#输出:
#C:\Users\mengma\Desktop\hello.py
#\

例4:导入多个模块时,起别名

# 导入sys、os两个模块,并为sys指定别名s,为os指定别名o
import sys as s,os as o
# 使用模块别名作为前缀来访问模块中的成员
print(s.argv[0])
print(o.sep)

#输出:
#C:\Users\mengma\Desktop\hello.py
#\

例5:使用from import 导入指定的成员(此时不需要再加前缀,可以直接调用成员)

# 导入sys模块的argv成员
from sys import argv
# 使用导入成员的语法,直接使用成员名访问
print(argv[0])

#输出:
#C:\Users\mengma\Desktop\hello.py

例6:使用from import 导入指定的成员,为成员起别名

# 导入sys模块的argv成员,并为其指定别名v
from sys import argv as v
# 使用导入成员(并指定别名)的语法,直接使用成员的别名访问
print(v[0])

#输出:
#C:\Users\mengma\Desktop\hello.py

例7:使用from import 导入指定的多个成员

# 导入sys模块的argv,winver成员
from sys import argv, winver
# 使用导入成员的语法,直接使用成员名访问
print(argv[0])
print(winver)#sys 的 winver 成员记录了该 Python 的版本号

#输出:
#C:\Users\mengma\Desktop\hello.py
#3.7

例8:使用from import 导入指定的多个成员,并为成员起别名

# 导入sys模块的argv,winver成员,并为其指定别名v、wv
from sys import argv as v, winver as wv
# 使用导入成员(并指定别名)的语法,直接使用成员的别名访问
print(v[0])
print(wv)

#输出:
#C:\Users\mengma\Desktop\hello.py
#3.7

例9:在使用 from import 时,可以一次导入指定模块内的所有成员(此方式不推荐)

#导入sys 棋块内的所有成员
from sys import *
#使用导入成员的语法,直接使用成员的别名访问
print(argv[0])
print(winver)
#一次导入了 sys 模块中的所有成员,这样程序即可通过成员名来使用该模块内的所有成员。该程序的输出结果和前面程序的输出结果完全相同。

注意:一般不推荐使用“from import ”这种语法导入指定模块内的所有成员,因为它存在潜在的风险。
比如同时导入module1 和 module2 内的所有成员,假如这两个模块内都有一个 foo() 函数,那么当在程序中执行如下代码时:foo(),上面调用的这个 foo() 函数到底是 module1 模块中的还是 module2 模块中的?因此,这种导入指定模块内所有成员的用法是有风险的。

但如果换成如下两种导入方式,是可以的:
方法1:
> import module1
import module2 as m2

接下来要分别调用这两个模块中的 foo() 函数就非常清晰。程序可使用如下代码:
module1.foo();
m2.foo()

#使用模块module1 的模块名作为前缀调用foo()函数 #使用module2 的模块别名作为前缀调用foo()函数
方法2:
from module1 import foo as fool
#导入module1 中的foo 成员,并指定其别名为foo1
from module2 import foo as foo2
#导入module2 中的foo 成员,并指定其别名为foo2

此时通过别名将 module1 和 module2 两个模块中的 foo 函数很好地进行了区分,接下来分别调用两个模块中 foo() 函数就很清晰:
foo1() #调用module1 中的foo()函数
foo2() #调用module2 中的foo()函数

参考文章:http://c.biancheng.net/view/2397.html

你可能感兴趣的:(#,Python-学习笔记,python)