python基础学习笔记1(环境搭建、基础语法、流程控制、函数)

学习一门技术仍是推荐从官方教程学起,其余资料做为辅助html

官网:https://www.python.org/java

python3官方教程:https://docs.python.org/zh-cn/3/tutorial/index.htmlpython

环境搭建

安装解释器

  • 经过官网下载适合操做系统的安装包(个人是windows x64)

  • 增长环境变量

PATH变量增长python安装目录,例如C:\Users\Administrator\AppData\Local\Programs\Python\Python37windows

  • 执行解释器

环境变量设置好后执行python进入解释器,若是打印解释器版本等信息证实安装成功数组

解释器支持交互式的代码执行,咱们能够直接在解释器命令行录入代码并执行获得结果。例如:app

  •  建立代码文件

建立test.py文件并录入如下代码less

#!/usr/bin/python3

print("Hello, World!")
  • 执行代码

执行test.py文件输出执行结果。函数

 

IDE开发工具

  • 开发工具使用PyCharm

PyCharm是JetBrains公司旗下的python集成开发工具。java开发时就常用IDEA因此值得信赖。工具

官网地址:https://www.jetbrains.com/pycharm/学习

  • 下载PyCharm

在官网下载安装包,目前咱们只要下载免费的社区版便可。

  • 安装PyCharm

windows环境的安装没有什么特别。在安装时咱们能够选择是否创建快捷方式和菜单项、是否关联.py文件、是否建立环境变量

  • 配置编译器

添加一个已安装的编译器

  • 执行项目

咱们能够经过右上角功能区,执行或debug项目

 

基础语法

数学计算(Numbers)

+ - * / 加减乘除

 

// 除法取整 23//8 = 2
% 除法取余 23%8 = 7
** 幂值计算 5**3 = 125
j 复数虚部表示 3+5j
= 变量赋值符号  

逻辑运算

<,>,== 小于,大于,等于  
<=,>=,!= 小于等于,大于等于,不等于  
in 包含
input = 'yes'
if input in ('y','ye','yes'):
    print('input suceess')
else:
    print('input error')

字符串(Strings)

‘...’或“...” 表示一个字符串  
\ 转义字符。如\n表明回车  
r"..." 字符串前加r表示忽略转义字符
print(r"c:\name")
"""...""" 或'''...''' 三引号表示一个段落
'''
produces the 
following output
'''
+ 字符串链接符。  
相邻字符串 多个相邻字符串会自动链接。可是这种方式只支持吃字符串变量和表达式要使用+
print("I ""like ""python")输出I like python
* 字符串重复符
print("python"*3)输出pythonpythonpython
字符数组 字符串也是一个字符列表,咱们能够经过下标获取某个字符
string = "Python"
print(string[2]) # 输出 t
# 从右面取值
print(string[-2]) # 输出 o
# 取中间一部分(前包后不包)
print(string[1:3]) # 输出 yt
# 从头开始
print(string[:3]) # 输出 Pyt
# 一直到结束
print(string[-3:]) # 输出 hon
len()

计算字符串长度

len( "Python")等于6

列表(Lists)

[... , ...]

列表是用中括号括起,用逗号分割的一组数据。

一般状况列表中的数据类型都是一致的,可是不一致也是容许的。

[1, 2.4, '32131', [1, 2, 3]]
列表索引 列表可使用[标号]进行索引。
num = [4,10,13,14,23,26,10]
# 从左取值
print(num[2]) # 输出 13
# 从右取值
print(num[-2]) # 输出 26
# 取中间一部分(前包后不包)
print(num[1:3]) # 输出 [10, 13]
# 从头开始
print(num[:3]) # 输出 [4, 10, 13]
# 一直到结束
print(num[-3:]) # 输出 [23, 26, 10]
+ 列表连接符
num = num + [66,88,99]
print(num) # 输出 [4, 10, 13, 14, 23, 26, 10, 66, 88, 99]
append(...)
添加新内容
num.append(101)
print(num) # 输出 [4, 10, 13, 14, 23, 26, 10, 101]
= 赋值,能够经过赋值改变列表内容。
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
letters[2:5] = ['C', 'D', 'E']
print(letters) # 输出 ['a', 'b', 'C', 'D', 'E', 'f', 'g']
letters[2:5] = []
print(letters) # 输出 ['a', 'b', 'f', 'g']
letters[:] = []
print(letters) # 输出 []
len() 计算列表长度  
列表副本

列表赋值时传递的是列表引用,如word1=word在word1作出变化时也会影响到word。

若是但愿复制一个副本可使用word1=word[:]

word1 = word # 复制引用
word1 = word[:] # 复制副本
word1 = word[2:5] # 复制部分副本

字典(Dictionary)

{'a':1,'b':2} 字典相似于java的map用于存储键值对  
     
     

通用语法

缩进 标识代码模块至关于java的{},同一层 级的代码缩进数量必须一致。
if 1==1:
    print("true")
else:
    print("false")
\ Python语句中通常以新行做为语句的结束符,拼接多行语句时使用多行连接符。
total = item_one + \
        item_two + \
        item_three
# 注释。python没有多行注释  
None 空置,至关于java的null。  

变量

  • 变量使用“=”进行赋值
  • 变量声明与赋值必须同时进行
empty = None # 空置
number = 100  # 数字
string = "python"  # 字符串
list = [1,3.14,"python"] # 列表
tuple = (1,3.14,"python") # 元组
dictionary = {'a':1,'b':3.14,'c':"python"} # 字典
  • 容许多变量同时赋值
a, b = 0, 1
  •  多变量赋值时会先将右边的表达式按照从左到右的顺序进行计算,而后再进行赋值
a, b = b, a+b 
# 先计算 b 再计算 a+b 而后将b赋值给a将a+b赋值给b
#至关于
temp_a = b
temp_b = a+b
a = temp_a
b = temp_b

 

流程控制

if判断

判断语句由if、elif、else组成

x = 0
if x == 0:
    print("X is equal to zero")
elif  x < 0:
    print("X is less than zero")
elif  x > 0:
    print("X is greater than zero")
else:
    print("Unable to determine")

while循环

i = 0
while i<10:
    print(i, end=(','))
    i+=1
else:
    print("End of the cycle")

    # 输出结果:0,1,2,3,4,5,6,7,8,9,End of the cycle

while的else表示,在循环条件结果为false时执行。

for循环

for常被用来遍历一个列表。(字符串也是一个字符列表)

# 循环输出列表
word = ["January","February","March","April","May","June","July","August","September","October","November","December"]
for w in word:
    print(w,len(w),end=(','))
    # 输出结果:January 7,February 8,March 5,April 5,May 3,June 4,July 4,August 6,September 9,October 7,November 8,December 8,
# 循环输出字符串
string = "Python"
for s in string:
    print(s,end=(','))
    # 输出结果:P,y,t,h,o,n,
# 循环指定次数
for i in range(10):
    print(i,end=(','))
    # 输出结果:0,1,2,3,4,5,6,7,8,9,

range()函数用于生成不可变的数字序列(并非列表),一般用于循环for循环中的特定次数。

# else字句
for i in range(10):
    print(i, end=(','))
else:
    print("End of the cycle")

    # 输出结果:0,1,2,3,4,5,6,7,8,9,End of the cycle

for循环的else表明循环遍历完成时执行此内容。

break跳出循环

# 跳出循环
for i in range(10):
    if i==5:
        break
    print(i,end=(','))
    # 输出结果:0,1,2,3,4,

continue结束本次循环

# 结束本次循环
for i in range(10):
    if i == 5:
        continue
    print(i, end=(','))
    # 输出结果:0,1,2,3,4,6,7,8,9,

pass占位

pass语句什么也不作,用于占位。

 

函数

定义函数

使用def关键字定义函数

def output(s):
    '''
    将对象输出到控制台
    :param s: 输出对象
    :return: 无返回值
    '''
    print(s)

output("I like python")

函数的参数传递与java类似,传递的是对象的引用。

函数的第一句三引号部分为文档字符串(DocStrings),添加文档字符串是一个良好的习惯。文档字符串至关于java的方法注释,方便往后维护。

重命名函数

# 重命名函数
op = output 
op("I like python")

函数的返回值

# 函数的返回值
def sum(a,b):
    '''
    求两个数的和
    :param a: 数a
    :param b: 数b
    :return: a+b的和
    '''
    return a+b

print(sum(666,888))

return返回函数的返回值。没有return的函数返回None。

参数默认值

定义参数时能够设置默认值,无默认值的参数调用时是必输的,有默认值的参数调用时能够不输入使用默认值。

# 参数默认值
def sum(a=1,b=2):
    '''
    求两个数的和
    :param a: 数a
    :param b: 数b
    :return: a+b的和
    '''
    return a+b

print(sum(666,888)) # 结果:1554
print(sum(666))     # 结果:668
print(sum())        # 结果:3

默认值是在定义时进行赋值的,因此要清楚赋值时赋值的是数据仍是引用,这样才能准确的判断参数以后的变化状况。

关键字参数

函数能够经过 关键字参数 的形式来调用,形如 keyword = value

# 关键字参数
def sum(a,b):
    '''
    求两个数的和
    :param a: 数a
    :param b: 数b
    :return: a+b的和
    '''
    return a+b

print(sum(a=666,b=888)) # 结果:1554

这种方式在通常状况下是没有必要的,可是若是使用可变参数时就能体现出它的做用了

# 以关键字参数形式传递可变参数
def output(a,**keywords):
    print("a is " + a ,end=',')
    for keyword in keywords:
        print(keyword + " is " + keywords[keyword],end=',')

output("one",b="two",c="three",d="four") # 结果:a is one,b is two,c is three,d is four,

可变参数列表

使用可变参数可接收一组未定义的参数

# 可变参数列表
def output(a,*args):
    print(a ,end=',')
    for arg in args:
        print(arg,end=',')

output("one","two","three","four") # 结果:one,two,three,four,

拆分参数列表

参数也可使用列表或字典的方式传入

# 经过列表传递入参
def output(a,b):
    print("a is " + a ,end=',')
    print("b is " + b)
args=['one','two']
output(*args) # 结果:a is one,b is two
# 经过字典传递入参
def output(a,b):
    print("a is " + a ,end=',')
    print("b is " + b)
dic={'a':'three','b':'four'}
output(**dic) # 结果:a is three,b is four

拉姆达表达式(Lambda)

用于快速生成一个匿名函数

# 使用匿名函数进行数学计算
sum = lambda a,b:a+b
print(sum(5,6)) # 结果:11
# 做为返回值返回匿名函数
def make_incrementor(n):
    return lambda x: x + n
f = make_incrementor(42)
print(f(5)) # 结果:47

文档字符串

函数的第一句三引号部分为文档字符串(DocStrings),添加文档字符串是一个良好的习惯。文档字符串至关于java的方法注释,方便往后维护。

文档字符串能够经过__doc__默认变量取出。

def output(s):
    '''
    将对象输出到控制台
    :param s: 输出对象
    :return: 无返回值
    '''
    print(s)

output(output.__doc__)
# 结果:
#     将对象输出到控制台
#     :param s: 输出对象
#     :return: 无返回值

main函数

'__main__' 是顶级代码执行的名称。当从单独脚本或标准输入执行代码时,模块的__name__ 值将被设置为__main__。

因此咱们能够经过判断__name__ == "__main__"来断定是否为独立脚本执行,若是是的话就执行main函数。

if __name__ == "__main__":
    # execute only if run as a script
    main()

这里执行的并不是必须是main()函数,任意函数均可执行。

编码风格

编码风格不是语言自己强制限制的,可是一个良好的编码习惯能让代码的阅读和修改都变得比较轻松。

  • 使用四个空格进行缩进
  • 每行代码不超过79个字符
  • 使用空行分隔函数和代码块
  • 可能的话,尽可能把注释写在一行
  • 使用文档字符串
  • 在运算符周围和逗号后面增长空格。但不要在括号结构中增长空格。a = f(1, 2) + g(3, 4
  • 使用首字母大写驼峰式命名,函数使用全小写加下划线命名。
  • 所有使用UTF8编码甚至是ASCII编码。

固然python有不少自动检查代码的工具,使用这些工具可以帮助咱们发现不符合规范的地方,培养良好的编码习惯。

例如Pylint(推荐)、Pychecker、pyflakes、flake八、mypy等

相关文章
相关标签/搜索