Python 基础语法入门

简介: 这个系列是去年的时候给西门子电力的工程师培训Python入门课程准备的讲义~ 分享出来,仅供学习~ 本节是《Python入门-1.2 基础语法入门》

1.2 基础语法入门

明确几个基本概念

(1)表达式

       表达式就是一个类似于数学公式的东西
       比如:10 + 5   8 - 4
       表达式一般仅仅用了计算一些结果,不会对程序产生实质性的影响
       如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出

(2)语句

       在程序中语句一般需要完成某种功能,比如打印信息、获取信息、为变量赋值。
       比如:

print()
input()
a = 10

       语句的执行一般会对程序产生一定的影响
       在交互模式中不一定会输出语句的执行结果  

(3)程序(program)

       程序就是由一条一条的语句和一条一条的表达式构成的。

(4)函数(function)

       函数就是一种语句,函数专门用来完成特定的功能
       函数长的形如:xxx()          
       函数的分类:
           内置函数
               - 由Python解释器提供的函数,可以在Python中直接使用
           自定义函数    
               - 由程序员自主的创建的函数
       当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数
       函数的两个要素:
           参数
               - ()中的内容就是函数的参数
               - 函数中可以没有参数,也可以有多个参数,多个参数之间使用,隔开
           返回值        
               - 返回值是函数的返回结果,不是所有的函数都有返回值

基本语法

第一个Python程序

# -*- coding: cp-1252 -*-
# Python文件首行可以指定编码格式,Python3默认是utf-8

print("Hello World") # 打印Hello World

print("Hello, everyone!\n \
    I am so glad to introduce Python to you!")

a = True
if a:
    print("True")
else:
    print("False")
  • 在Python中严格区分大小写
  • Python中的每一行就是一条语句,每条语句以换行结束
  • Python中每一行语句不要过长(规范中建议每行不要超过80个字符)
  • 一条语句可以分多行编写,多行编写时语句后边以"\"结尾  
  • Python是缩进严格的语言,以缩进来表示代码块,所以在Python中不要随便写缩进  
  • 在Python中使用#来表示注释,"#"后的内容都属于注释,注释的内容将会被解释器所忽略

输入和输出

input()输入:
  • input()的小括号中放入的是,提示信息,用来在获取数据之前给用户的一个简单提示
  • input()在从键盘获取了数据以后,会存放到等号右边的变量中
  • input()会把用户输入的任何值都作为字符串来对待
  • 注意:在python2中还有一个raw_input()输入,但到python3中没有了
str = input("请输入:");
print ("你输入的内容是: ", str)

print()输出:
  • print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""
x="a"
y="b"
# 换行输出
print( x )
print( y )

print('---------')
# 不换行输出
print( x, end=" " )
print( y, end=" " )
print()

# 同时输出多个变量
print(x,y)

format格式化函数:
  • 格式化字符串的函数 str.format(),它增强了字符串格式化的功能
  • 基本语法是通过 {} 和 : 来代替以前的 % 。
# 不设置指定位置,按默认顺序
template = "name: {}, age: {}"
print(template.format("John","18"))

# 设置指定位置
template = "name: {0}, age: {1} \nWelcome, {0}"
print(template.format("John", "18"))

# 设置指定参数名
template = "name: {name}, age: {age}"
print(template.format(name="John", age="18"))

# 通过字典设置参数
template = "name: {name}, age: {age}"
john = {"name": "John", "age":"18"}
print(template.format(**john)) # **表示接收的参数作为字典来处理,*表示接收的参数作为元组来处理

# 通过列表索引设置参数
my_list = ['John', '18']
template = "name: {0[0]}, age: {0[1]}" # 第一个数字0,用于表示format参数,可以传入多个列表参数,中括号中表示数组下标
print(template.format(my_list))

# 练习:尝试混用上述方式~

# 数字格式化
print("PI: {:.2f}".format(3.1415926))
数字 格式 输出 描述
3.1415926 {:.2f} 3.14 保留小数点后两位
3.1415926 {:+.2f} +3.14 带符号保留小数点后两位
-1 {:+.2f} -1.00 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
5 {:0>2d} 05 数字补零 (填充左边, 宽度为2)
5 {:x<4d} 5xxx 数字补x (填充右边, 宽度为4)
10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指数记法
13 {:10d} 13 右对齐 (默认, 宽度为10)
13 {:<10d} 13 左对齐 (宽度为10)
13 {:^10d} 13 中间对齐 (宽度为10)
11 '{:b}'.format(11)
'{:d}'.format(11)
'{:o}'.format(11)
'{:x}'.format(11)
'{:#x}'.format(11)
'{:#X}'.format(11)
1011
11
13
b
0xb
0XB
进制

注释

  • python中单行注释采用 # 开头。
# -*- coding: UTF-8 -*-
# 文件名:test.py
# 第一个注释
print("Hello, Python!");  # 第二个注释

输出结果:

Hello, Python!


注释可以在语句或表达式行末:

name = "Madisetti" # 这是一个注释
  • python 中多行注释使用三个单引号(''')或三个双引号(""")。
# -*- coding: UTF-8 -*-
# 文件名:test.py
'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''
"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""

标识符

  • 在Python里, 标识符: 由字母、数字、下划线组成,但不能以数字开头
  • Python 中的标识符是区分大小写的。
  • 特殊标识符:

    • 以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
    • 以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
  • python保留字: 保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 
'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 
'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'if',
'return','try', 'while', 'with', 'yield']

变量

  • Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  • 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
  • 等号(=)用来给变量赋值。
  • 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
counter = 100          # 整型变量
miles   = 1000.0       # 浮点型变量
name    = "demo"     # 字符串

print(counter)
print(miles)
print(name)

执行以上程序会输出如下结果:

100
1000.0
demo

TIPS:

  1. 变量命名应既简短又具有描述性。例如,name比n好,student_name比s_n好。
  2. 慎用小写字母l和大写字母O,它们很容易被看错成数字1和0
  • Python允许你同时为多个变量赋值。例如:
a = b = c = 1
  • 以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
  • 您也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "demo"
  • 以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "demo" 分配给变量 c。


行与缩进

  • python最具特色的就是使用缩进来表示代码块,不需要使用大括号({})。
  • 缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:
if True:
    print ("True")
else:
    print ("False")
  • 以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:
if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")
  print ("False")    # 缩进不一致,会导致运行错误
  • 以上程序由于缩进不一致,执行后会出现类似以下错误:
File "test.py", line 6
    print ("False")    # 缩进不一致,会导致运行错误
                                      ^
IndentationError: unindent does not match any outer indentation level

多行语句
  • Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠()来实现多行语句,例如:
total = item_one + \
        item_two + \
        item_three
  • 在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(),例如:
total = ['item_one', 'item_two', 'item_three',
        'item_four', 'item_five']


空行
  • 函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
  • 空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
  • 记住:空行也是程序代码的一部分。
目录
相关文章
|
19小时前
|
监控 Python
探索Python中的装饰器:从入门到实践
【10月更文挑战第31天】在Python的世界里,装饰器是那些隐藏在幕后的魔法师,它们拥有着改变函数行为的能力。本文将带你走进装饰器的世界,从基础概念到实际应用,一步步揭开它的神秘面纱。你将学会如何用几行代码增强你的函数功能,以及如何避免常见的陷阱。让我们一起来发现装饰器的魔力吧!
|
5天前
|
存储 Python Perl
python正则语法
本文介绍了正则表达式的基础知识及其在 Python 中的应用。首先解释了为什么要使用正则表达式,通过一个判断手机号的示例展示了正则表达式的简洁性。接着详细介绍了 `re` 模块的常用方法,如 `match()`、`search()`、`findall()`、`finditer()` 等,并讲解了正则表达式的基本语法,包括匹配单个字符、数字、锚字符和限定符等。最后,文章还探讨了正则表达式的高级特性,如分组、编译和贪婪与非贪婪模式。
9 2
|
8天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从基础到实战
【10月更文挑战第24天】本文将带你进入Python的世界,从最基础的语法开始,逐步深入到实际的项目应用。我们将一起探索Python的强大功能和灵活性,无论你是编程新手还是有经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python的奇妙之旅吧!
|
10天前
|
数据采集 存储 数据库
Python中实现简单爬虫的入门指南
【10月更文挑战第22天】本文将带你进入Python爬虫的世界,从基础概念到实战操作,一步步指导你如何使用Python编写一个简单的网络爬虫。我们将不展示代码示例,而是通过详细的步骤描述和逻辑讲解,帮助你理解爬虫的工作原理和开发过程。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往数据收集新世界的大门。
|
8天前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
【10月更文挑战第24天】 在Python的世界里,装饰器是一个既神秘又强大的工具。它们就像是程序的“隐形斗篷”,能在不改变原有代码结构的情况下,增加新的功能。本篇文章将带你走进装饰器的世界,从基础概念出发,通过实际例子,逐步深入到装饰器的高级应用,让你的代码更加优雅和高效。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开一扇通往高效编程的大门。
|
10天前
|
存储 人工智能 数据挖掘
Python编程入门:构建你的第一个程序
【10月更文挑战第22天】编程,这个听起来高深莫测的词汇,实际上就像搭积木一样简单有趣。本文将带你走进Python的世界,用最浅显的语言和实例,让你轻松掌握编写第一个Python程序的方法。无论你是编程新手还是希望了解Python的爱好者,这篇文章都将是你的理想起点。让我们一起开始这段奇妙的编程之旅吧!
14 3
|
9天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
20 1
|
11天前
|
存储 程序员 开发者
Python编程入门:从零开始掌握基础语法
【10月更文挑战第21天】本文将带你走进Python的世界,通过浅显易懂的语言和实例,让你快速了解并掌握Python的基础语法。无论你是编程新手还是想学习一门新的编程语言,这篇文章都将是你的不二之选。我们将一起探索变量、数据类型、运算符、控制结构、函数等基本概念,并通过实际代码示例加深理解。准备好了吗?让我们开始吧!
|
1天前
|
开发者 Python
探索Python中的装饰器:从入门到实战
【10月更文挑战第30天】本文将深入浅出地介绍Python中一个强大而有趣的特性——装饰器。我们将通过实际代码示例,一步步揭示装饰器如何简化代码、增强函数功能并保持代码的可读性。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开一扇通往更高效编程的大门。
|
11天前
|
数据采集 机器学习/深度学习 数据可视化
深入浅出:用Python进行数据分析的入门指南
【10月更文挑战第21天】 在信息爆炸的时代,掌握数据分析技能就像拥有一把钥匙,能够解锁隐藏在庞大数据集背后的秘密。本文将引导你通过Python语言,学习如何从零开始进行数据分析。我们将一起探索数据的收集、处理、分析和可视化等步骤,并最终学会如何利用数据讲故事。无论你是编程新手还是希望提升数据分析能力的专业人士,这篇文章都将为你提供一条清晰的学习路径。