python的基础语法

Python 源程序就是一个特殊格式的文本文件,可以使用任意文本编辑软件做 Python 的开发
Python 程序的 文件扩展名 通常都是 .py
认识错误(BUG)
编写的程序不能正常执行,或者执行的结果不是我们期望的,俗称bug,bug是程序员在开发时非常常见的,初学者常见错误的原因包括:

  1. 手误输入错误
  2. 对已经学习过的知识理解还存在不足,将多条 print 写在一行,缩进错误等
  3. 对语言还有需要学习和提升的内容
    在学习语言时,不仅要学会语言的语法,而且还要学会如何认识错误和解决错误的方法,每一个程序员都是在不断地修改错误中成长的。
    Python 是一个格式非常严格的程序设计语言,目前而言,大家记住每行代码前面都不要增加空格。

出现错误的单词列表

error 错误
name 名字
defined 已经定义
syntax 语法
invalid 无效
Indentation 索引
unexpected 意外的,不期望的
character 字符
line 行
encoding 编码
declared 声明
details 细节,详细信息
ASCII 一种字符编码

python标识符

标识符

标识符对变量、常量、函数、类等对象起的名字,就是程序员定义的 变量名、函数名。比如班级的学生都是一个对象,怎么区分呢,可以叫每个人的名字。python中也一样,我们去定义一个东西,并反复使用去调用它,就需要给它定义个名字。

标识符的命名规则

1. 大小写敏感,定义a,通过A则不能访问
2. 只能以 字母 数字 下划线 组成(数字不能开头,可以以下划线开头,可以中文命名,但是不推荐)
3. 见名知意,否则可读性会很差
4. 蛇形 / 小驼峰 / 大驼峰 命名法,一般用蛇形,类的命名用大驼峰
5. 变量(小写);常量大写
6. 不以关键词作为标识符,python中内置的模块,函数,类的名字不要用

关键字 就是在 Python 内部已经使用的标识符,具有特殊的功能和含义,不允许定义和关键字相同的名字的标示符
比如sum,先sum = 1,再 sum([1,2,3]),就会报错,因为先把sum定义为一个整数1,已经改变了sum原有的功能,不能再进行求和

a = 1
>>> a
1
>>> A
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'A' is not defined
>>> ab =1
>>> ab
1
>>> 1ab=1
  File "<stdin>", line 1
    1ab=1
      ^
SyntaxError: invalid syntax
>>> {ab=1
  File "<stdin>", line 1
    {ab=1
       ^
SyntaxError: invalid syntax

>>> age = 18
>>> name ="happy"
>>> weight = 160
>>> national_treasure = "pandas"  #-->蛇形
>>> nationalTreasure = "pandas"  #-->小驼峰
>>> NationalTreasure = "pandas"  #-->大驼峰
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', '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']

>>> sum([1,2,3])
6
>>> sum = 1
>>> sum([1,2,3])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

python注释

我们写的程序里,不光有代码,还要有很多注释,增加代码的可读性。注释有说明性质的、帮助性质的,它们在代码执行过程中相当于不存在,透明的,不会进行执行。
比如在pycham 中 输入import os,CTRL+鼠标左键点击os,会进入帮助文档,有三对""和以#开头灰色的文档都是注释。

Python 中以符号 # 为单行注释的开始,从它往后到本行的末尾,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用,都是注释内容。#+空格后输入注释性内容。
快捷键:,shift+3,CTRL+/,也可以用于多行注释,CTRL+d 复制当前行,实现同时进行多行注释暂时不需要的代码,以及在需要使用时取消注释

注释在代码上方,后面均可以
在 Python 中通常使用 三对引号(单引号、双引号) 来注释文档,也可以认为是注释多行,文档注释也不会被执行,常用于说明解释。

什么时候需要使用注释?

  1. 注释不是越多越好,对于一目了然的代码,不需要添加注释
  2. 对于 复杂的操作,应该在操作开始前写上若干行注释
  3. 对于 不是一目了然的代码,应在其行尾添加注释(为了提高可读性,注释应该至少离开代码 2 个空格)
  4. 绝不要描述代码,假设阅读代码的人比你更懂 Python,他只是不知道你的代码要做什么
  5. 在一些正规的开发团队,通常会有 代码审核 的惯例,就是一个团队中彼此阅读对方的代码

语句与缩进

语句

在代码中,能够完整表达某个意思、操作或者逻辑的最短代码,被称为语句。
a = 1
print“hello” ,都是语句,可以直接执行的,不需要加标点符号,以换行作为语句的结束

代码块

为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、
函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号( : )结束

a = 2
if a > 1:  #--->英文的冒号
    print("yes")  #--->Tab键 相当于4个空格
else:
    print("no")

缩进

python 最具特色的语法就是使用 缩进 来表示 代码块 ,不需要使用大括号。
python 一般用 四个空格 就是 tab 来缩进。在 pycharm 中 tab 自动回转成4个空格
正确的缩进方式:

  1. 所有的普通语句,顶左开始编写,不需要缩进
  2. 所有的代码块,首行不用缩进,从冒号结束后开始下一行,都要缩进
  3. 直到该语句块结束,就退回缩进,表示当前块已结束
  4. 语句块可以嵌套,所以缩进也可以嵌套

pass语句

如果if,else后没有要输入的内容,在print处可以用pass表示占位,建立程序的框架,否则会报错。
pass 语句是占位语句,它什么都不做,只是为了保证语法的正确性而写。
以下场景中,可以使用 pass 语句:

  • 当你不知道后面的代码怎么写的时候
  • 当你不需要写代码细节的时候
  • 当语法必须,又没有实际内容可写的时候
  • 其它的一些你觉得需要的场景

变量与常量

程序就是用来处理数据的,而变量就是用来存储数据的。数据不管在任何语言中进行处理,JAVA,C,Python为了对数据进行处理,文件其实是数据流,把常用的数据放到容器中,如每次用到同一个数值,需要重复输入,当把这个数值赋值给变量后,以后使用时直接调用就可以了

变量与常量的定义

变量与常量都是容器,无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值

变量与常量的区别

变量是程序运行过程中,值可以发生改变的量
常量是程序运行过程中,值不会发现变化的

变量数据类型

在excel中,单元格的数据类型是常规或者数字,可以点击单元格右下角的填充柄进行数据变化,如果是文本型,可以用填充柄进行文本的复制。
在 Python 中定义变量是 不需要指定类型(在其他很多高级语言中都需要)
数据类型可以分为 数字型 和 非数字型

  • 数字型
    · 整型 (int),整数
    · 浮点型(float),字符串
    · 布尔型( bool)True或False,真 True ,非 0 数 —— 非零即真,代表的值是1; 假 False 0代表的值是0,严格区分大小写。
    · 复数型 (complex),主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题
  • 非数字型
    · 字符串,以成对的单引号或者双引号包裹,不要一个单,一个双
    · 列表
    · 元组
    · 字典
    我们可以通过type()函数输出数据类型。
>>> type(2)
<class 'int'>
>>> type(1.1)
<class 'float'>
>>> type("hello")
<class 'str'>
>>> type(True)
<class 'bool'>

变量的创建

在 Python 中,每个变量在使用前都必须赋值,变量 赋值以后 该变量 才会被创建。
变量名 = 值
等号(=)用来给变量赋值,= 左边是一个变量名,= 右边是存储在变量中的值,变量定义之后,后续就可以直接使用了。
变量创建小贴士:

  • python是弱类型的,在python当中创建变量无需声明类型,如age=18,已经标明是整数,如果age=“18”,则为字符串,等号右边的内容赋值给等号左边的变量
  • 每个变量在使用前都必须赋值,变量赋值以后才会被创建
  • “=”号这个赋值运算符是从右往左的计算顺序,先计算右边,得到结果后再赋值给左边
  • Python允许同时为多个变量赋值
>>> age = 18
>>> type(age)
<class 'int'>
>>> age = "18"
>>> type(age)
<class 'str'>
>>> a = b = c =3
>>> a
3
>>> b
3
>>> c
3
>>> a,b,c=1,2,3
>>> a
1
>>> b
2
>>> c
3

当执行 a = ‘hello’,python解释器做了什么呢?
1.在内存中创建了一个 ‘hello’ 的字符串对象;
2.在内存中创建了一个名为 a 的变量,并把它指向 ‘hello’
a------>hello

结果为male,female

可以用id查看a,b指向的内存地址,最开始a,b指向的同一个内存地址,当a=2时,b没有发生变化,这时,a,b所对应的内存地址不一样了

>>> a=1
>>> b=a
>>> b
1
>>> a
1
>>> id(a)
1628405872
>>> id(b)
1628405872
>>> a=2
>>> a
2
>>> b
1
>>> id(a)
1628405904
>>> id(b)
1628405872

练习1.打印输出–>小宇的年龄:18

age = 18
# 字符串与整数不能直接用+号拼接
print("小宇的年龄是:" + age) #-->TypeError: must be str, not int,类型错误,必须是字符串,而不是整数
#以逗号隔开,可以讲字符串与整数同时输出
print("小宇的年龄是:" , age) #-->小宇的年龄是: 18
#将int通过str()强转为字符串
print("小宇的年龄是:" + str(age))  #-->小宇的年龄是:18

2.打印输出–>小宇的年龄是18,性别为男性

age = 18
sex = 'man'
#方法一,用拼接的方式
print("小宇的年龄是",age,"性别为",sex)
#方法二,格式化字符串,3种方法
# 占位,%d--->int类型的坑,%s--->str类型的坑
print("小宇的年龄是%d,性别为%s" % (age,sex))
print(f"小宇的年龄是{age},性别为{sex}")
print("小宇的年龄是{},性别为{}".format(age,sex))

输出的结果是

小宇的年龄是 18 性别为 man
小宇的年龄是18,性别为man
小宇的年龄是18,性别为man
小宇的年龄是18,性别为man

常量

常量就是不变的量,或者说在程序运行过程中不会改变的量。在 python 中使用全部大写来辨别常量。
注意:python 中没有保护常量的机制,所以也没有严格意义上的常量。

python输入与输出

Input输入函数

input() 是内置函数,用来获取用户输入,就是用代码获取,用户通过键盘输入的信息,返回值为字符串。当用户未输入时,会发生阻塞,一直等待用户输入,等待用户输入后程序再往下执行。
多行同时更改代码,alt+左键,点几行,同时更改。ctrl+R 选择替换

函数说明
inprint()将用户的输入输出到控制台
print(x)将 x 输出到控制台
type(x)查看 x 的变量类型
int(x)将 x 转换为一个整数
float(x))将 x 转换到一个浮点数
格式化字符含义
%s字符串
%d有符号十进制整数,%06d 表示输出的整数显示位数,有浮点数,只输出整数,不足的地方使用 0 补全)
%f浮点数,默认6为小数,%.2f 表示小数点后只显示两位
%%输出 %
#input()函数
age = input("请输入年龄") #-->输入的内容赋值给age
print(age)  #-->打印age变量
print(type(age))  #-->打印age的类型,input输入返回的都是字符串

返回的结果

请输入年龄:18
18
<class 'str'>

input输入练习:
输入年龄,当年龄大于18,则输出”你好呀,小靓仔”;
否则输出”你好呀!小朋友”

age = input("请输入年龄:") #-->输入的内容赋值给age
#当年龄>18,
if int(age) >18:  #-->字符串不能与int直接比较,需要强转为int
    print("你好呀,小靓仔")  #-->符合条件的输出
else:  #-->不满足条件
    print("你好呀!小朋友") #-->不满足条件的输出

print()输出函数

print() 方法用于打印输出,最常见的一个函数。CTRL+鼠标左键,放在函数的位置,点进去看一下语法规则。
语法:print(self,*args, sep=’ ‘, end=’\n’, file=None)

常用参数:

  • sep:分隔符符号,在值之间插入的字符串,默认为空格,可以用sep="\n"等改变分隔方式。通俗的说,以什么分割两个值,默认是" "
  • end:当前print语句字符串追加在最后一个值之后,默认为换行符\n。通俗的说,以什么值作为结尾,默认是"\n"
    如果,设置end=’’",则可以不换行,让print在一行内连续打印

作业讲解

1.以下命名不符合标识符规则的有(多选):(ABD)
A. list = [1,2,3,4]
B. 01_a = 1
C. name = ‘amy’
D. 年龄 = 18
解析:list 是列表,关键字不嫩作为变量名,数字不能做开头,一般不用中文做变量名
2.
a = 6
b = 8
实现 a = 8,b=6

#方法一:
a = 6
b = 8
c = a
a = b
b = c
print(a)
print(b)
#方法二
a = 6
b = 8
a, b =b, a
print(a)
print(b)

运行结果

8
6

3.用户输入 id_card
判断 id_card是否为全数字
是,则打印输出 id_card
否,则打印输出 ‘id_card格式错误’

id_card = input("请输入id_card:")
#第一种方法
if id_card.isdigit():
    print(id_card)
else:
    print("id_card格式错误")
#第二种方法
print(id_card) if id_card.isdigit() else print("id_card格式错误")

4.print(‘12’)
print('3
4’)
使用一个print语句实现
上面两个print()语句输出的效果

print("1*2\n3*4")
print("1*2","3*4",sep="\n")

5.在python中,注释分几类?分别如何定义?
python注释有两类,单行注释和多行注释。注释内容。从井号#开始,直到这行结束为止的所有内容都是注释。
Python 解释器遇到#时,会忽略它后面的整行内容。
说明单行代码的功能时一般将注释放在代码的右侧,例如:print(“http://c.biancheng/python/”) #输出Python教程的地址
Python 多行注释
多行注释指的是一次性注释程序中多行的内容(包含一行)。
Python 使用三个连续的单引号’’‘或者三个连续的双引号"""注释多行内容,具体格式如下:’’’
使用 3 个单引号分别作为注释的开头和结尾,可以一次性注释多行内容,这里面的内容全部是注释内容
6.变量的类型有哪些?
数字型:整型,浮点型,布尔型,复数型
非数字型:字符串,列表,元组,字典
7.请定义一个变量str1并赋值一个字符串"hello",
再定义一个变量str2并赋值一个字符串"python",那么str1 + str2 的值是多少?

str1 = "hello"
str2 = "python"
print(str1+str2)
hellopython

8.变量a=“10”;b=‘30’;c=a+b;请说出c的值是什么,类型是什么?
如果我希望让c=“40”,应该怎么做?请写代码实现。

a = "10"
b = '30'
c = a + b
print(c)  #-->c=1030,字符串
c1 = str(int(a)+int(b))
print(c1)  #-->c1=“40”

9.编写一个程序,运行程序后,分别输入姓名、性别、年龄、单位、联系方式等数据,并用变量分别接收
输入完成后,最后打印出姓名、性别、年龄、单位、联系方式等信息,输出的格式自行设定,尽量美观,输出需使用上格式化输出。

name = input("请输入姓名:")
gender = input("请输入性别:")
age = input("请输入年龄:")
unit = input("请输入工作单位:")
contact = input("请输入联系方式:")
print(f"我的姓名是:{name}")
print("我的性别是:%s" % gender)
print("我的单位是:{}".format(unit))
print(f"我的年龄是:{age}")
print(f"我的联系方式是:{contact}")

10.输入一个三位整数,将该数的各位左右反转输出,即输入123,输出321。

#第一种方法
num = int(input("请输入一个三位数"))
num1 = num//100
num2 = num % 100//10
num3 = num % 10
print(str(num3)+str(num2)+str(num1))
#第二种方法
num = input("请输入一个三位数")
print(num[::-1])

更多推荐

python语言基础(三)基础语法基础