Python基础

Python基础

1.1基础语法

1.1.1标识符

所谓的标识符就是对变量、常量、函数、类等对象起的名字。 首先必须说明的是,Python语言在任何场景都严格区分大小写!也就是说A和a代表的意义完全不同 python对于表示标识符的命名有如下规定:

第一个字符必须是字符表中的字符或者下划线

例如,a,abc,_id,等都是可以的。但是例如 a ( 以 a(以 a(开头的是PHP的变量语法),~abc,123a都是不可以的。 这一点一定要注意。 可能有人会问,中文可以作为标识符嘛?答案是可以的

我 = “json”,打印出‘我’ 结果是json 虽然可以但是不建议大家这样做

另外,以下划线开头的标识符通常都有特殊意义。以单下划线开头的变量,例如_foo代表禁止外部访问的类成员,需通过类提供的接口进行访问,不能用"from xxx import *"导入。而以双下划线开头的,例如__foo, 代表类的私有成员 以双下划线开头和结尾的 __foo__是python里特殊方法专用的标识。如 __init__代表类的构造函数。这些我们后面会专门的讨论这里不做过多的解释。

标识符的其他的部分由字母、数字和下划线组成

标识符除了首字符不可以是数字外,其他部分还可以包含数字。这里需要注意特殊字符是不可以的。例如: a123b,bbc,a_b_c_1这些都是可以的。但是a&b,a-b-c这些都是不可以的。 另外要注意的是,由于l(小写的L)和数字1, 大小写的o与数字0在外观上的相似性,请尽量不要让它们相邻出现,保持语义的清晰性,确保不会发现错误认读的情况。 同样,英文中夹塞中文在语法上也是可以的,但绝对不要这么做!

a这都能行b就服你 = 100
a这都能行b就服你
100

  • 标识符对大小写敏感
    刚刚上面也给大家说过了,标识符ab和AB是完全不同的两个标识符
  • 变量名全部小写,常量名全部大写
    这条不能算语法层面的要求,而是代码规范的要求。 可以用PI来表示一个变量,但通常我们都会认为这是代表圆周率的一个常量
  • 函数和方法名用小写加下划线
  • 这算是一个代码的规范,我们在定义一个方法的时候。尽量用get_images,count_apple之类的命名方式。当然 也可以采用小驼峰的方式,getImages,countApple这种。
  • 类名用大驼峰
    同样也是代码规范,例如ThreadMinxIn,ButtonClick这种。就是每个单词的首字母大写,组合在一起就像是驼 峰一样高低排列。
  • 模块和包的名字用小写
    请尽量小写模块和包的名字,并且不要和标准库以及著名的第三方库同名。如果同名程序运行会报错。 最后提醒大家,变量的命名不要用关键字和内置函数的名称!!
python保留字

Python保留字,也叫关键字,是Python语言官方确定的用作语法功能的专用标识符,不能把它们用作任何自定 义标识符名称。关键字只包含小写字母。可以通过python提供的库输出这些关键字

  • Python的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字
    import keyword
    keyword.kwlist
    用关键字当变量就会报错
    在这里插入图片描述
    系统会直接提示语法错误,所以这里一定要注意不要用关键字来当做变量。除了不能使用关键字作为标识符,内 置的函数同样也是不可以的。sum是一个求和的函数。这里我给它定义成一个字符串看看会有什么结果?在这里插入图片描述
    注释
  • 我们写的程序里,不光有代码,还要有很多注释。注释有说明性质的、帮助性质的,它们在代码执行过程中相当 于不存在,透明的。
    单行注释
  • Python中,以符号“#”为单行注释的开始,从它往后到本行的末尾,都是注释内容。 # 单行注释
    多行注释 Python没有真正意义上的多行注释(块注释)语法

#第一行注释
#第二行注释
#第三行注释

注释文档
在某些特定的位置,用三引号包括起来的部分,也被当做注释。

'''
这个是函数的说明文档。 
:param a: 加数 
:param b: 加数 :return: 和 
'''
代码头两行

很多时候,我们在一些py脚本文件的开头都能看到类似的以#开头的这样两行代码,它们不是注释,是一些设定

#!/usr/bin/env python
# -*- coding:utf-8 -*-
  • 第一行:用于指定运行该脚本的Python解释器,Linux专用,windows不需要。env方式下,系统会自动使用环 境变量里指向的Python。还有一种方式,#!/usr/bin/python3.6,这会强制要求使用系统中的python3.6解释器 执行文件,这种方式不好,一旦你本地的Python3.6版本删除了,会出现找不到解释器的错误。无论两种方式的 哪一种,都指的是在linux下使
  • 第二行:代码的编码方式。不是程序要处理的数据的编码方式,而是程序自己本身的字符编码。在Python3中, 全面支持Unicode,默认以UTF-8编码,我们不用再纠结中文的问题,乱码的问题,所以本行其实可以不需要。 但在Python2中,对字符的编码是个非常令人头疼的问题,通常都需要指定这么一行。如果要自定义别的编码类 型的话,可以像这样:# – coding: cp-1252 --,但如果没有强制需求的话,不要自己作死,请坚持使用utf-8编码
  • 这里的-*-是什么意思呢?没意思,装饰美观
语句与缩进

语句:在代码中,能够完整表达某个意思、操作或者逻辑的最短代码,被称为语句。

a = 321
a = 321
print("hello world")
list.append(item)

这里强调一下,python的标准语言不需要使用分号。简单的换行就表示语句已经结束。 代码块:为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、函数、类等各种代码 块。代码块的首行通常以关键字开始,以冒号( : )结束。比如:

if expression: 
	pass 
elif expression :
	pass 
else:
	pass

Python最具特色的语法就是使用缩进来表示代码块,不需要使用大括号
像PHP、JAVA等语言都是使用({})来表示代码块的。python一般用四个空格就是tab来缩进。在pycharm中 tab自动回转成4个空格。在Linux环境中,如VIM编辑器,建议使用空格。 那么怎么才是正确的缩进方式呢?

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

多行语句: 前面是多条语句在一行,但如果一条语句实在太长,也是可以占用多行的,可以使用反斜杠\来实现多行语句

string = "i love this country,"\ 
		+"because it is very beautiful!"\

pass语句
pass语句是占位语句,它什么都不做,只是为了保证语法的正确性而写。以下场景中,可以使用pass语句:

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

def func(a,b):
	pass
字符串的表示形式

原生字符串: 通过在字符串前加r或R,如 r"this is test \n",表示这个字符串里的斜杠不需要转义,等同于自身

变量与常量
  • 变量:在程序运行过程中,值会发生变化的量
  • 常量:在程序运行过程中,值不会发生变化的量
  • 无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值。
  • 这里有一点需要注意的是,在python中是不需要声明类型的。这是根据Python的动态语言特性而来。变量可以直接使用,而不需要提前声明类型。
    变量的定义: Python 中的变量不需要声明类型
a = 4 
b = "hello" 
c = [1,2]
d = (1,2)

这些变量都是不需要声明它的类型的,在C和Java中是必须要声明的。这里的 = 是赋值而不是等于的意思。每 个变量在使用前都必须赋值,变量赋值以后才会被创建。如果一个变量没有赋值,直接用的话。系统会报出错误 这里的等号要理解并读作“赋值”,而不是“等于”,“赋值”是对变量的操作,而“等于”是对两个变量进行比较。
每个变量在使用前都必须赋值,变量赋值以后才会被创建

>>> a        # 孤单单一个a,什么也表示不了,只能报错 Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module> a NameError: name 'a' is not defined 
>>> a = 1 # 这样就没问题了,解释器知道a是个新变量了 >>> c.append(1) # c是个什么鬼? 
Traceback (most recent call last): 
	File "<pyshell#2>", line 1, in <module> 			c.append(1) NameError: name 'c' is not defined

Python中,一切事物都是对象,变量引用的是对象或者说是对象在内存中的地址。

  • 在Python中,变量本身没有数据类型的概念 通常所说的“变量类型”是变量所引用的对象的类型,或者说是变量的值的类型
>>> a = 1 
>>> a = "haha" 
>>> a = [1, 2, 3] 
>>> a = { "k1":"v1"}

例子中,变量a在创建的时候,赋予了值为1的整数类型,然后又被改成字符串“haha”,再又变成一个列表,最 后是个字典。变量a在动态的改变,它的值分别是不同的数据类型,这是动态语言的特点。
“=”号这个赋值运算符是从右往左的计算顺序。

>>> a = 1 
>>> b = 2 
>>> c = a + b # 先计算a+b的值,再赋给c 
>>> print(c)
>>>3

当我们写: a = 'ABC’时,Python解释器干了两件事情:

  • 1.在内存中创建了一个‘ABC’的字符串对象;
  • 2.在内存中创建了一个名为a的变量,并把它指向’ABC’。
常量

最后我们还要说下常量!

  • 常量就是不变的变量,比如常用的数学常数圆周率就是一个常量。在Python中,通常用全部大写的变量名表示常 量:
  • PI = 3.14159265359
  • 但事实上,从Python语法角度看,PI仍然是一个变量,因为Python根本没有任何机制保证PI不会被改变。你完 全可以给PI赋值为10,不会弹出任何错误。所以,用全部大写的变量名表示常量只是一个习惯上的用法。
    input函数:获取用户输入,保存成一个字符串。重要的话,说两遍,input函数的返回值是一个字符串类型。哪 怕你输入的是个数字1,返回给你的只会是字符串“1”,而不是 整数1 。

输入和输出

input输入函数

input函数:获取用户输入,保存成一个字符串。重要的话,说两遍,input函数的返回值是一个字符串类型。哪 怕你输入的是个数字1,返回给你的只会是字符串“1”,而不是 整数1 。

str = input("请输入你的姓名:") 
请输入你的姓名:json 
'json' 
type(str) 
<class 'str'> 
age = input("请输入你的年龄:") 
请输入你的年龄:18 
'18' 
type(age) 
<class 'str'> 
a = input("请输入一个字符串:") 
如果输入的是一个空白字符串,输入的也是空白字符 
a = input("请输入一个字符:") 
如果输入的是前后都有空格的字符,输出的也是前后都有空格的字符串

从上面两个例子中,大家也可以发现了,我输入的值不管是什么,类型都是字符串。 type是python内置的函数之一,作用是查看数据的类型。 比如将字符串转换成数字类型
运算符待改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值