python基础语法与数据类型

TWO DAY

四、Python基础语法

4.1、变量

4.1.1、python的标识符规范

简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。Python中标识符的命名不是随意的,而是要遵守一定的命令规则

  • 标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
  • 标识符不能和 Python 中的保留字相同。有关保留字,后续章节会详细介绍。
  • Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
  • 在 Python 中,标识符中的字母是严格区分大小写
  • Python 语言中,以下划线开头的标识符有特殊含义
  • Python 允许使用汉字作为标识符(不推荐)

标识符的命名,除了要遵守以上这几条规则外,不同场景中的标识符,其名称也有一定的规范可循,例如:

1 '''

2 当标识符用作模块名时,应尽量短小,并且全部使用小写字母,使用下划线分割多个字母,例如 game_nian、game_register等。

3 当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如 com.mr、com.mr.book等。

4 当标识符用作类名时,应采用单词首字母大写的形式。例如,定义一个图书类,可以命名为Book.

5 模块内部的类名,可以采用“下划线+首字母大写”的形式,如Book;

6 函数名、类中的属性名和方法名,应全部使用小写字母,多个单词之间可以用下划线分割,

7 常量命名应全部使用大写字母,单词之间可以用下划线分割

8 '''

4.1.2、python的关键字

andasassertbreakclasscontinue
defdelelifelseexceptfinally
forfromFalseglobalifimport
inislambdanonlocalnotNone
orpassraisereturntryTrue
whilewithyield   

4.1.3、变量

变量是一段有名字的连续存储空间。我们通过定义变量来申请并命名这样的存储空间,并通过变量的名字来使用这段存储空间。在编程语言中,将数据放入变量的过程叫做赋值(Assignment)。Python 使用等号=作为赋值运算符,具体格式为:

变量名=任意类型的值

例如:

1. x = 10

2.y = 'li'

3.z = ture

4.a = "flase"

4.2、语句分隔符

就像我们写作文一样,逗号、句号等语句分隔符是非常重要的,程序也一样,要想让解释器能读懂,语句和语句之间一定要有分隔符。在C、Java等语言的语法中规定,必须以分号作为语句结束的标识。Python也支持分号,同样用于一条语句的结束标识。但在Python中分号的作用已经不像C、Java中那么重要了,Python中的分号可以省略,主要通过换行来识别语句的结束。

4.3、缩进

和其它程序设计语言(如 Java、C 语言)采用大括号“{}”分隔代码块不同,Python 采用冒号( : )和代码缩进和来区分代码块之间的层次。在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。

注意,Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。

4.3、注释

注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。一般情况下,合理的代码注释应该占源代码的 1/3 左右。

注释只是为了提高公认阅读,不会被解释器执行。

Python 支持两种类型的注释,分别是单行注释和多行注释。

1    #  单行注释

2

3   """

4   这是一个多行注释

5   三引号里面的任何内容不会被解释器执行

"""

4.4、Python编码规范(PEP 8)

Python 采用 PEP 8 作为编码规范,其中 PEP 是 Python Enhancement Proposal(Python 增强建议书)的缩写,8 代表的是 Python 代码的样式指南。下面仅给大家列出 PEP 8 中初学者应严格遵守的一些编码规则:

1、不要在行尾添加分号,也不要用分号将两条命令放在同一行

2、通常情况下,在运算符两侧、函数参数之间以及逗号两侧,都建议使用空格进行分隔。

3、使用必要的空行可以增加代码的可读性,通常在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行,另外在用于分隔某些功能的位置也可以空一行。

4.5、基本数据类型

4.5.1、整型和浮点型

  • 整型

在python中整数都属于整型,不同于C语言会根据整数的大小将整型分类为short、int、long、long long 四种类型,python只有一种整型,即int类型,无论整型数字多大多小都属于int

1.  x = 10
2. print(type(x))  #<class'int'>
3. x = 1000000000000000
4. print(type(x))
5. print(x)

 

说道整型,就不得不提到整型数字之间进制。

 

1     #十六进制
2     print(0x11)
3     print(0x111)
4   

5    #二进制
6    print(0b1e1)
7    print(0b101)
8
9    #八进制

10  print(0o12)
11  print(0o23)
12
13  #十进制转换为二进制
14   print(bin(3))
15
16   #十进制转换为十六进制
17    print(hex(19))
18
19   #十进制转换为八进制
20   print(oct(10))

  • 浮点型

在python中小数都属于浮点型(float),有两种表现形式

 

1      #小数点形式

2      f  = 3.14
3     print(f) # 3.14
4     print(type(f))#<class‘float'>
5

6      #指数形式: aEn 或 aen

7      '''
8      3.2E5= 3.2×185,其中 3.2 是尾数,5是指数。
9      2.7E-3 =2.7×18-2,其中 2.7 是尾数,-3是指数。

10     0.2E8= 9.2×187,其中9.2是尾数,8是指数。
11      '''

12
13     f1 = 3.2E5
14    print(f1) # 320888.8
15
16    print(type(f1)) # <class  float'>
17    f2 = 3.2E-5
18    print(f2)
19    #3.2e-85
20    print(type(f2))  #<class  float'>
21    f3 = 3.1415926123456789876543217789
22    print(f3)   #双精度(double float,保留17为有效数字)
23    print(type(f3))

4.5.2、布尔类型

布尔型(Boolean)是一种数据的类型,这种类型只有两种值,即"真"与"假"。

在python中用 bool表示布尔类型,“"用关键字true表示,“"用false表示。 

 

1    print(4 == 2)   # False
2    print(5 > 1)  # True
4    age = "17"
5    print(age == "alvin")  # False
6    print(1=="1")  # False

不光表达式的结果是布尔值,任意值都有自己的布尔值,这就涉及到布尔的零值

 

1 #任意数据类型都一个具体值的布尔值为False,我们称为零值。该类型的其他值的布尔值皆为True。
2    print(bool(""))  #字符串的零值""
3    print(bool(e))  # 整型的零值 
4    print(bool(False))  # 布尔类型的零值 False
6    print(bool("8"))
7    print(bool("-1"))
8    print(bool("yuan"))
9    print(bool(-1))
10  print(bool(0.1))

4.5.3、字符串

字符串是由零个或多个字符组成的有限序列。字符串的内容可以包含字母、标点、特殊符号、中文、日文等全世界的所有字符。

在python中字符串是通过单引号''或者双引号""标识的。

1.   s1 = "hi chiyang"

2.   print(s)

3.   s2 = ""

4.   print(s1)

5.   s3 = "你好啊”

6.   print(s3)

 

Python 字符串中的双引号和单引号没有任何区别!

  • 字符串的转义符
转义字符说明
\n换行符,将光标位置移到下一行开头。
\r回车符,将光标位置移到本行开头。
\t水平制表符,也即 Tab 键,一般相当于四个空格。
\a蜂鸣器响铃。注意不是喇叭发声,现在的计算机很多都不带蜂鸣器了,所以响铃不一定有效。
\b退格(Backspace),将光标位置移到前一列。
\反斜线
'单引号
"双引号
\在字符串行尾的续行符,即一行未完,转到下一行继续写。

1 s1 = "hi chiyang\nhi, future"
2 print(s1)

3
4 s2 = 'I\'m chiyang'
5 print(s2)

6
7 s3 = "D:\\nythonProject\\nenv\\Scripts\\python.exe"
8 print(s3)

  • 长字符串

 

1   s   """
2   s = "hi chiyang
3   I'm chiyang
4  这是一个pythcn解释器路径:"D:\\nythonProject\\nenv\\Scripts\\python.exe"

5  长字符串中放置单引号或者双引号不会导致解析错误
6   """
7   print(s)

  • 格式化输出

之前讲到过 print() 函数的用法,这只是最简单最初级的形式,print() 还有很多高级的玩法,比如格式化输出。

input()”函数是输入函数,用于接受一个标准输入数据,且返回string类型。

1   name = chiyang

2   age = 20

3   print(" My name is %s; My age is %d%(name age))

在 print() 函数中,由引号包围的是格式化字符串,它相当于一个字符串模板,可以放置一些转换说明符(占位符)。本例的格式化字符串中包含一个%s%d说明符,它最终会被后面的name和age 变量的值所替代。中间的%是一个分隔符,它前面是格式化字符串,后面是要输出的表达式。

print() 函数使用以%开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。

转换说明符解释
%d、%i转换为带符号的十进制整数
%o转换为带符号的八进制整数
%x、%X转换为带符号的十六进制整数
%e转化为科学计数法表示的浮点数(e 小写)
%E转化为科学计数法表示的浮点数(E 大写)
%f、%F转化为十进制浮点数
%g智能选择使用 %f 或 %e 格式
%G智能选择使用 %F 或 %E 格式
%c格式化字符及其 ASCII 码
%r使用 repr() 函数将表达式转换为字符串
%s使用 str() 函数将表达式转换为字符串
  • 序列类型

字符串属于序列类型,所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。

 s  =  "hello world

helo world

                                                                                                                             1           2         3          4         5         6        7          8         9          10         11

                                                                                                                        

hel  lo world

                                                                                                                             -11       -10     -9       -8         -7          -6        -5         -4        -3         -2         -1    

序列类型支持的操作:Python 还支持索引值是负数,此类索引是从右向左计数,换句话说,从最后一个元素开始计数,从索引值 -1 开始,如图 所示。

 

1  #(1)索引取值
2  s = "hello world"
3  print(s[6])
4  print(s[-10])
5
6  #(2)切片取值:序列类型对象[start:end:step]
7  s = "hello world"
8  print(s[1:4]) #e11 :取索引1到索引3(左闭右开)
9  print(s[:4]) #hell:start缺省,默认从0取
10 print(s[1:]) #ello world: end 缺省,默认取到最后
11 print(s[1:-1]) #ello worl
12
13 print(s[6:9]) #wor
14 print(s[-4:-1]) #orl
15 print(s[-1:-4]) #空
16 print(s[-1:-4:-1]) #dlr step为1:从左向右一个一个取。为-1,从右向左一个取。
17 
18 #(3)判断存在:Python中,可以使用in关键字检查某元素是否为序列的成员
19 s ="hello world"
20 print("world" in s) #Ture
21
22 #支持两种类型相同的序列使用“+”运算符做相加操作,它会将两个序列进行连接,但不会去除重复的元素。
23 #   使用数字n 乘以一个序列会生成新的序列,其内容为原来序列被重复n 次的结果。
24 s = "hello"+"world"
25 print(s) #hello world
26 s ="*"*99
print(s) #************
  • 内置方法
方法作用示例输出
upper全部大写"hello".upper()"HELLO"
lower全部小写"Hello".lower()"hello"
startswith()是否以a开头"Yuan".startswith("Yu")True
endswith()是否以a结尾"Yuan".endswith("a")False
isdigit()是否全数字'123'.isdigit()True
isalpha()是否全字母'yuan123'.isalpha()False
isalnum()是否全为字母或数字'yuan123'.isalnum()True
strip()去两边空格" hi yuan \n".strip()"hi yuan"
join()将多个字符串连接在一起"-".join(["yuan","alvin","eric"])"yuan-alvin-eric"
split()按某字符分割字符串,默认按空格分隔"yuan-alvin-eric".split("-")['yuan', 'alvin', 'eric']
find()搜索指定字符串,没有返回-1"hello world".index("w")6
index()同上,但是找不到会报错"hello world".index("w")6
count()统计指定的字符串出现的次数"hello world".count("l")3
replace()替换old为new'hello world'.replace(‘world',‘python')"hello python"
format()格式化方法  

4.5.4、类型转换

1
2  i = int("3")
3  print(i,type(i)) #3 <class 'int'>
4
5  s = str(3.14)
6  print(s,type(s))#3.14<class 'str'>
7
8  b1 = bool(10)
9  b2 = bool("chiyang")
10 b3 = bool("")
11 b4 = bool("10")
12 b5 = bool(0)
13 print(b1) # TURE
14 print(b2) #TURE
15 print(b3)  #FALSE
16 print(b4) #TRUE
17 print(b5) #FALSE

 

 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值