一、程序结构
1.1缩进分层
Python用缩进分层来写模块。
编码规范中指出:最好采用空格的形式,每一层向右缩进4个空格。
1.2 换行
换行符
Linux/UNTX 操作系统 ASCII LF (linefeed)
DOS/Windows 操作系统 ASCII CR LF (return+ linefeed)
Mac OS 操作系统 ASCII CR (return)
程序代码超过一行
如果程序代码超过一行,可以在每一行的结尾添加反斜杠(\),继续下一行
如果是以()、中括号[]、大括号{}包含起来的语句,不需要使用反斜杠(\)就可以直接分成多行
ps:
每个反斜杠之后不加注释文字
将数行表达式写成一行
1.3 注释
单行注释
# 被注释内容
多行注释
‘’’
被注释内容
‘’’,或者
“””
被注释内容
“””
1.4 标识符
标识符用来表示变量、常量、函数、对象等程序要素的名字。
标识符的命名规则:
1.首字符必须是字母、汉字或下划线
2.中间可以是字母、下划线、数字或汉字,不能有空格
3.区分大小写字母
4.不能含有Python关键字
1.5 关键字
关键字(Keyword)又被称为保留字,是Python系统内部定义和使用的特定标识符。
##查看python关键字C:\Users\lh>pythonPython 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> import keyword>>> 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']
1.6 import 与form ……import
在Python中,模块是一个包含所有定义的函数和变量的文件,后缀为.py。
模块可以被其他程序引入,实现调用该模块中函数的功能,用import或from……import导入。
import语句既可以导入一个自定义模块,也可以导入Python标准模块。
1.将整个模块导入
import <模块名1>[,<模块名2>[,……<模块名N>]
2.从某个模块中导入某个函数的格式
from <模块名> import <函数名>
3.从某个模块中导入多个函数
form <模块名> import <函数名1>[,<函数名2>[,……<函数名N>]
4.将某个模块中的全部函数导入
form <模块名> import *
二、Python的输入和输出
2.1 输入
input() 函数从标准输入读入一行文本。
ps:用户输入的数据全部以字符串形式返回,如果需要输入数值,需要进行类型转换。
input ([prompt])prompt 可选参数,用来显示用户输入的提示信息字符串。# 将用户输入的内容赋值给 name 变量name = input("请输入用户名:")# 打印输入的内容print(name)print("hello"+name)print("hello",name)#输出的结果请输入用户名:ccyccyhelloccyhello ccy
ps:用加号连接输出的中间没有空格
用逗号连接输出的中间有空格
可以让用户输入多个信息
name = input("What is your name?")age = input("How old are you?")hometown = input("Where is your hometown?")print("Hello ",name , "your are ", age , "years old, you came from",hometown)
2.2 输出
print() 函数用于输出格式化的数据。
print(value,……,sep=' ',end= '\n')
value:是用户要输出的信息,后面的省略号表示可以有多个要输入的信息
sep:用于设置多个要输出信息之间的分隔符,默认的分隔符为一个空格
end:是一个print()函数中所有要输出信息之后添加的符号,默认值为换行符
格式化处理
如果输出的内容既包含字符串,又包含变量值,需要将变量值格式化处理。
将字符串与变量之间以%符号隔开,如果不隔开的化,就会完整输出字符串的全部内容。
%s代表字符串占位符,%d代表数字占位符,
x=100print("x=%d"%x)print(x)结果x=100100# 格式化输出name=input("please input your name:")age=input("please input your age:")sex=input("please input your sex:")info='''name:%sage:%ssex:%s'''%(name,age,sex)print(info)#另一种写法print("name:%s,age:%s,sex:%s"%(name,age,sex))#输出结果please input your name:ccyplease input your age:20please input your sex:boyname:ccyage:20sex:boyname:ccy,age:20,sex:boy如果把上面的age后面的换成%d,就代表你必须只能输入数字格式化字符串必须一一对应不然会报错
不换行输出
通过在变量末尾添加end=” “,可以实现不换行输出的效果
a = "lars "b = "gyon"##默认换行输出print(a)print(b)##不换行输出print(a,end=" ")print(b,end=" ")结果larsgyonlars gyon
三、常量与变量
3.1 常量
在程序运行过程中,值不会发生改变的数据对象称为常量。
常量是值一旦初始化后就不能修改的固定值,其值按类型分为整型常量、浮点型常量、字符串型常量。
可以用type()函数查看数据的类型。
3.2 变量
3.2.1变量含义
在程序运行过程中,可以随着程序的运行而改变的量称为变量。
变量对应计算机内存中的一块区域,用来存储数据的值,不同类型的数据所分配的存储空间不同。
3.2.2 高级语言中的变量
计算机的内存是以字节为单位的存储区域,为了方便访问,每个存储单元有自己的编码,称为内存地址。
通过内存地址访问存储空间,就像人们通过门牌号码投递邮件一样。实际上,程序要访问内存中的数据并不需要知道其物理地址,在高级语言中,用变量来指向这个物理地址。
变量是指一个特定的存储空间,即一定字节数的内存单元。这一组存储单元用来存放指定的数据,而数据是可以随时变化的。
通常情况下,在使用变量之前需要定义变量,定义变量就是定义变量的名称、类型和值。变量的类型决定了分配的内存单元的多少,即多少个字节。变量的名称就是对这一组内存单元的引用,这样可以使用变量名访问数据。
变量值发生改变的时候,改变的是存储单元中的内容,而变量的地址是不变的。
3.2.3 Python中的变量
Python语言没有专门定义变量的语言,而是使用赋值语句完成对变量的定义。每个变量在使用前都必须赋值,变量赋值以后才会被创建。
当用赋值语句给变量赋值的时候同时就定义了变量。变量名不是对内存地址的引用,而是对数据的引用。
也就是说,用赋值语句对变量重新赋值的时候,Python为其分配了新的内存单元,变量将指向新的地址,变量的地址发生了改变。
在Python中,变量就是变量,没有类型。(“类型”指的是内存中对象的类型)
用id()函数可以查看变量的内存地址。
a = "lars "print(id(a))a = "gyon"print(id(a))##结果29439366842082943936715888
3.2.4 变量的赋值
#驼峰体AgeOfBoy = 56NumberOfStudents = 80#下划线age_of_boy = 56number_of_students = 80
1.变量赋值
赋值号就是等号“=”
<变量名>=<表达式>
赋值号的左边必须是变量名,右边是表达式。从右往左的顺序,赋值语句计算出表达式的值,然后将该变量指向该数据。
a = "变量1 "print(id(a))b= "变量1"print(id(b))##结果19331342995681933134299472变量a和变量b分别指向不同的数据

a = "变量1 "print(id(a))b= aprint(id(b))##结果25396199100642539619910064变量a和变量b指向相同的数据
2.增量赋值
Python提供了12种增量赋值运算符。
| 运算符 | 说明 |
|---|---|
| += | 加等于,c+=a,即c=c+a |
| -= | 减等于,c -=a,即c=c-a |
| *= | 乘等于,c=a,即c=ca |
| /= | 除等于,c/=a,即c=c/a |
| //= | 整除等于,c//=a,即c=c/a,得到的结果是整数 |
| %= | 取余等于,c%=a,即c=c%a.得到的是余数 |
| **= | 幂等于,c*=a,即c=ca*a,得到的是乘方 |
| <<= | 左移运算等于,运算数的各二进制位全部左移若干位 高位丢弃,低位补0 |
| >>= | 右移运算等于,运算数的各二进制位全部右移若干位 |
| &= | 按位与运算 |
| |= | 按位或运算 |
| ^= | 按位异或运算,当两对应的二进位相异的时候,结果为1 |
3.链式赋值
<变量名1>=<变量名2>=……=<变量名n>=<表达式>
链式赋值用于多个变量赋一个相同的值。先计算出最后的表达式的值,然后将变量全部指向这个数据对象。
a =b=c= 9*9print(id(a))print(id(b))print(id(c))##结果140715831360272140715831360272140715831360272
4.多重赋值
<变量名1>,<变量名2>,……,<变量名n>=<表达式1>,<表达式2>,……,<表达式n>
赋值号两边的变量和表达式的数量要一直,多重赋值首先计算出赋值号右边的表达式的值,然后按照顺序分别赋值给左边的变量。
a ,b,c= 9*9,99,88print(a)print(b)print(c)##结果819988
使用多重赋值,可以实现两个数据的交换
a,b=3,5print(a)print(b)a,b=b,aprint(a)print(b)##结果3553
