## Python基础语法
目录
1.数据类型初探
- int类型:整数
- float类型:浮点数
- str类型:字符串,以成对双引号或单引号包裹
- bool类型:true或false(简单来说就是对于否)
2.标识符命名规则
所谓的标识符就是对变量、常量、函数、类等对象起的名字
例如每个人都有个名字,不然的话你也分不清谁是谁吧,标识符的作用就是赋予一个名字,可以让Python知道这条指令调用的是谁。
但是Python取名字也有他的命名规则:
- 大小写敏感
- 只能以字母、数字、下划线组成(不能以数字开头)
- 见名知意
- 蛇形|小驼峰|大驼峰 命名法
- 变量(小写),常量(大写)
- 不以关键词作为标识符
1.大小写敏感
举个例子,我们用a来命名
>>> a=1
>>> A
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'A' is not defined
出现了报错,这里的报错指的是变量A没有被定义。
因为呀在大小写敏感的Python中大写的A和小写的a是两样东西,我们只定义了小写的a,没有定义大写的A,所以才会这样。
2.只能以字母、数字、下划线组成(不能以数字开头)
>>> abc=1
>>> abc1=1
>>> abc1_1=1
>>> _abc=1
>>> 中文=1
>>> 1abc=1
File "<stdin>", line 1
1abc=1
^
SyntaxError: invalid syntax
就像这样,用英文+数字+下划线的随意组合都可以命名(不能以数字开头,也不可以使用下划线以外的符号),当然也可以看到中文也可以命名不会报错,但是毕竟英文是国际通用语言,所以还是建议大家用英文好。
3.见名知意
>>> name = 'jeff'
>>> age = 18
就像这样一样,标识符要让别人一看就知道这是什么,见到名字就知道这串代码的意义。
4.蛇形|小驼峰|大驼峰 命名法
>>> national_treasure = "panda"
>>> nationalTreasure = "pandas"
>>> NationalTreasure = "pandas"
像这种用下划线连接两个单词的就叫做蛇形命名法。
像这种突然增高,然后再下去的这种形式,我们就叫他小驼峰。
像这种两头(两边首写字母)都是高的就是大驼峰。
我们为什么要用蛇形呢,是因为都是单词都是小写,就像nationaltreasure,没有了下划线我们怎么知道在哪里分隔呢。大驼峰小驼峰也是,所以我们要用到大写去区分。
5.变量(小写),常量(大写)
在定义标识符命名的时候,变量要用小写,常量则用大写。
6.不以关键词作为标识符
这点很关键,什么是关键词呢,例如我们Python里面内置的模块、自带的函数、自带的类。`
>>> if = 1
File "<stdin>", line 1
if = 1
^
SyntaxError: invalid syntax
这里的if是判断语句,是关键词,使用的也会直接报错。也有可能会导致一些内置的模块失效。
例如:
>>> sum([1,2,3]) #这里的sum是求和的函数
6
>>> sum = 1 #我们把sum定义成了1
>>> sum([1,2,3]) #当我们再运行这个函数的时候,就会失效了
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
#TypeError类型错误。
#'int' object is not callable这句话的意思是说整数对象是不可以被调用。因为sum被我们重新定义为了整数。
3.注释
首先我们要明白注释是什么,在工作中我们的程序不一定只有自己一个人在做,在使用,但是当他人在编程你的程序的时候,要看懂你的程序也要费点时间去梳理。
注释是有着说明性质以及帮助性质的。他在我们的代码中相当于不存在,程序是不会运行这段注释的。
Python中也有许多的注释:
- 单行注释:以字符#井号键开始到本行末尾都是注释内容(快捷键:CTRL+/)
# 输出hello,word。从井号开始到本行结尾都是注释内容,注释不会被程序运行所执行。可快捷键ctrl+/
print ("hello,word")
- 多行注释:按住鼠标左键,选中要多行注释的内容,按下ctrl+/即可
# ctrl+d是复制当前行,多行注释,按住鼠标左键,选中要注释的内容按住ctrl+/即可多行注释。
# print(123)
# print(123)
# print(123)
# print(123)
# print(123)
- 文本注释:用三对单引号或三个双引号
"""使用三对双引号"""
'''或者使用三对单引号即可实现文本注释'''
4.语句与缩进
1.语句:
在代码中,能够完整表达某个意思、操作或者逻辑的最短代码,被称之为语句。
a = 1 # 语句
print ("abcd") # 语句
像这样只要能完整的表达一个操作或者逻辑的最短代码就是一个语句。
在不同的编程语言中每个语句的结尾也有不同。例如有些语句的结尾要加上一个;
print("hello,word");
但在我们的Python中是不需要的,直接换行即可。
2.代码块
为了完成某个功能而联系在一起的一组语句叫做代码块。有循环、判断、函数、类等各种代码块。代码块的首行通常以关键词开始,以冒号(:)结束
例如:
a = 1 # a等于1
if a > 0: # if判断函数;如果a大于0
# 注意:在这里的print不是顶格写的,他有一个缩进。
print("yes") # print输出函数;输出yes
else: # 如果不是
print("no") # 输出no
像这种,由多个语句联系在一起完成判断功能的,就是判断代码块。
3.缩进
在Python中一个不需要以大括号来表示代码块的内部语句,一个缩进即可。
在Python一般用四个空格就是Tab来缩进,在Pycharm中Tab会自动转换成四个空格。
正确的缩进方式:
- 所有普通语句,顶左开始编写,不需要缩进
- 所有的代码块,首行不需要缩进,从冒号(:)结束后开始的每一行,都要缩进
- 直到该代码块结束,就退回缩进,表示当前代码块结束
- 代码块可以嵌套,所以缩进也可以嵌套
5.变量与常量
1.变量与常量的定义:
- 变量与常量都是容器
- 无论是变量还是常量,在创建时都会在内存中开辟出一块空间,用于保存它的值
2.变量与常量的区别:
- 变量是程序运行过程中,值可以发生改变的量
- 常量是程序运行过程中,值不会发生改变的量
例如:
>>> 11
11
>>> 11
我们要调用这个11,总不能每次都输一次11吧,这样会很耗内存的,所以我们就要用一个量去定义它。
>>> number = 11
>>> number
11
我们给他一个容器来装11,以后要调用11就直接使用这个容器就行。(number = 11;是将等号右侧的赋值给了等号左侧)
3.变量的创建
变量创建小贴士:
- 在Python中创建变量无需声明类型
- 每个变量在使用前都必须赋值,变量赋值以后再会被创建
- "="等号这个赋值运算符,是从右往左的计算顺序
- Python允许同时为多个变量赋值
>>> a = 1 # 无需声明类型
>>> b = 2
>>> c = a+b # =这个赋值运算符从右往左的计算顺序
>>> c # 使用前必须赋值
3
>>> a = b = c = 1 # 可同时为多个变量赋值(方法一)
>>> a
1
>>> b
1
>>> c
1
>>> a, b, c = 1, 2, 3 # 同时赋值多个变量(方法二)
>>> a
1
>>> b
2
>>> c
3
当执行name = "Jeff"的时候,Python解释器做了什么呢?
- 在内存中创建了一个"Jeff"的字符串对象;
- 在内存中创建了一个名为name的变量,并将它指向"Jeff"
a = 1
b = a
a = 2
print(a)
print(b)
这里的输出结果是什么呢?
因为我们的a指向了1,b指向了a,所以b也变成了1,但后面a指向了2,所以a就和1没有关系了,所以输出结果是a=2,b=1.
>>> a = 1
>>> b = a
>>> id(a) #a和b的地址是一样的
1785359840
>>> id(b)
1785359840
>>> a = 2 # 我们重新赋值了a
>>> id(a) # a的地址发生了改变
1785359872
>>> id(b) # b的地址没有任何改变
1785359840
>>>
6.常量
常量就是不变的量,或者说在程序运行过程中不会改变的量。在Python中是用全部大写命名来辨别常量
注意:Python中没有保护常量的机制,所以也没有严格意义上的常量。
7输入与输出
1.input输入函数
input()是内置函数,用来获取用户输入、返回值为字符串。当用户未输入时,程序会停止执行,等待用户输入。
age = input("请输入年龄") # 将input输入函数赋值给age
print(age) #输出age;注意:input返回的都是字符串
当我们运行的时候就会弹出里面的字符串内容
此时如果我们不输入程序就会卡在这里,当我们输入一个值
那么就会输出用户输入、返回值。
注意:input返回的都是字符串;input会阻塞程序的运行,用户不输入就会阻塞下面的程序运行。
2.print()输出函数
print()方法用于打印输出,最常见的一个函数。
语法: print(self,*args,sep=’’,end=’\n’,file=None)
# sep插在两个值之间,默认为空格
print('你好', '世界') # 输出你好 世界
print('你好', '世界', sep='*') # 输出你好*世界
print('你好', '世界', sep='\n') # \n是换行符
#输出:你好
# 世界
# end:当前print语句,最后一个值的分隔符;默认为换行符
print('你好', end='\n')
print('世界')
#输出你好
# 世界
print('你好', end='*') #print语句最后一个值改成*;输出:你好*世界
print('世界')
8.作业及总结
- 以下命名符不符合标识符规则的有(多选):
- A. list = [1,2,3,4]
- B. 01_a = 1
- C. name = ‘Jeff’
- D. 年龄 = 18
- a = 6
b = 8
实现a = 8,b = 6 - 用户输入id_card
判断card是否为全数字
是则打印出id_card
不是则打印出id_card格式错误 - print(‘1*2’)
print(‘3*4’)
使用同一个print语句实现上面两个print语句的输出效果
作业
1.ABD
2.
# 方法一
>>> a = 6
>>> b = 8
>>> c = a
>>> a = b
>>> b = c
>>> a
8
>>> b
6
# 方法二
>>>a = 6
>>>b = 8
>>>a, b = b, a
>>>a = 8
>>>b = 6
# 方法一
id_card = input('请输入您的身份证')
if str.isdigit(id_card):
print('id_card')
else:
print('id_card格式错误')
# 方法二
id_card = input("请输入您的id_card")
print("id_card" if str.isdigit(id_card) else "id_card格式错误")
# 方法三
id_card = input("请输入您的id_card")
if id_card.isdigit():
print("id_card")
else:
print("id_card格式错误")
# 方法一
print('1*2', '2*3', sep='\n')
# 方法二
print('1*2\n2*3')