Cris 复习 Python日记(一):基础语法

版权声明:转载请注明出处~ 摸摸博主狗头 https://blog.csdn.net/cris_zz/article/details/83053002

序言

树上春树曾说:如果我爱你 而你也正巧爱我.你头发乱了的时候 我会笑笑地替你拨一拨 然后 手还留恋地在你发上多待几秒.
但是 如果我爱你 而你不巧地不爱我.你头发乱了 我只会轻轻地告诉你 你头发乱了喔

0. 安装Python 环境,这里博主就使用以前搭配的 Anaconda 环境

1. Python 和 Sublime 的整合

安装PythonREPL 插件并简单设置(f5快捷运行Python 代码)
{ "keys": ["f5"], "caption": "SublimeREPL:Python","command": "run_existing_window_command", "args":{"id": "repl_python_run","file": "config/Python/Main.sublime-menu"}},
其实Sublime 内置了 ctrl+b 也可以快速执行Python 代码
设置单行字数的竖向分割线:"rulers":[80],

2. 基本概念

表达式:表达式一般仅仅用了计算一些结果,不会对程序产生实质性的影响
语句:在程序中语句一般需要完成某种功能,比如打印信息、获取信息、为变量赋值。。。
程序:算法+数据结构
函数:内置函数和自定义函数;参数和返回值

3. 字面量和变量

字面量:字面量所表示的意思就是它的字面的值,在程序中可以直接使用字面量
变量:变量本身没有任何意思,它会根据不同的字面量表示不同的意思
一般我们在开发时,很少直接使用字面量,都是将字面量保存到变量中,通过变量来引用字面量

4. 变量和标识符

标识符:Python 中所有可以自主命名的内容都属于标识符,比如:变量名,函数名,类名
标识符必须遵守标识符的规范:
	1. 标识符中可以含有数字,字母,_,但是不能以数字开头
	2. 标识符不能使用Python 的关键字和保留字
	3. 也不建议使用Python 的函数名作为标识符(print = 10,这样会导致print 函数被覆盖)
	4. 命名规范:
		- 下划线命名法(推荐变量和方法名):所有单词小写,单词之间使用_分割:user_name, user_age
		- 大驼峰命名法(帕斯卡命名法,推荐类名):首字母大写,每个单词开头大写,其余字母小写:HelloWrld MaxLength

5. 数据类型

数值:Python 中的数值分为三种:整数(int),浮点数(float),复数
		- Python 中的整数都是 int 类型
		- Python 中的整数没有大小限制,如果数字过大,可以使用下划线作为分隔符
		- 注意:Python 中的整数不能使用 0 开头,如:num = 012
				并且其他进制的数字打印到控制台一定是以十进制显示
				二进制:0b开头
				八进制:0o开头
				十六进制:0x开头
		- Python 中的小数都是float 类型,对浮点数进行运算,可能会得到不精确的结果

字符串(str):Python 中使用引号引起来:'Cris',单引号/双引号均可,但是不要混着用
		- 相同的引号之间不能嵌套:"cris say:"hello!""(报错)
		- 解决方案:"cris say:'hello!'"

		- 单引号和双引号不能跨行使用,可以使用\结尾解决,但是打印出来的结果还是没有换行
		- 解决方案:三重引号 '''xxx''' / """xxx""",可以换行,可以保留格式

		- 转义字符:\,通过\ 可以在字符串中表示特殊的内容
				- \' 表示 '
				- \" 表示 "
				- \t 表示制表符 tab
				- \n 表示换行符
				- \\ 表示\ 本身
				- \uxxxx 表示特殊的 Unicode 编码

           - 格式化字符串
               1. 字符串之间可以使用+ 拼接(不推荐,因为字符串只能和字符串进行拼接)
               2. 可以使用 print("a = ",a) 的形式
               3. 使用 print("name=%s"%name)
                   注意:可以使用%3 的形式对字符串进行长度限制
                       %s 可以对任意数据类型进行字符串类型的转换
                       %f 指定小数
                       %d 指定整数
               4. 3版本的Python 提供了新的字符串格式化方法,通过在字符串前面加上f 来创建一个格式化字符串
                   c = f'my name is {name}' 
                   其中 {name} 表示一个存在的变量名

           - 字符串的复制:将字符串和数字*
   
布尔值(bool)和空值(NoneType)
       - bool 用于逻辑判断,只有True 和False
       - bool 实际上也是可以转换为整型的,True 相当于1,False 相当于0

       - None 表示不存在

类型检查
       - type()

6. 对象(Object)

- Python 是一门面向对象的语言
- 对象的结构(每个对象中都要保存三种数据)
    - id(标识)
        > id用来标识对象的唯一性,每一个对象都有唯一的id
        > 对象的id就相当于人的身份证号一样
        > 可以通过id()函数来查看对象的id
        > id是由解析器生成的,在CPython中,id就是对象的内存地址
        > 对象一旦创建,则它的id永远不能再改变

    - type(类型)
        > 类型用来标识当前对象所属的类型
        > 比如:int str float bool 。。。
        > 类型决定了对象有哪些功能
        > 通过type()函数来查看对象的类型
        > Python是一门强类型的语言,对象一旦创建类型便不能修改


    - value(值)
        > 值就是对象中存储的具体的数据
        > 对于有些对象值是可以改变的
        > 对象分成两大类,可变对象 不可变对象
            可变对象的值可以改变
            不可变对象的值不能改变,之前学习的对象都是不可变对象

7. 变量和对象

- 对象并没有直接存储到变量中,在Python中变量更像是给对象起了一个别名
- 变量中存储的不是对象的值,而是对象的id(内存地址),
    当我们使用变量时,实际上就是在通过对象id在查找对象
- 变量中保存的对象,只有在为变量重新赋值时才会改变
- 变量和变量之间是相互独立的,修改一个变量不会影响另一个变量 

8. 类型转换

- 所谓的类型转换,将一个类型的对象转换为其他对象
- 类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象

示例代码

# @Auther:Cris

# Python 严格区分大小写
print('cris')

# Python 中每行就是一条语句,以换行结束
print('jack')
print('simida')

# Python 中每行语句不要过长(优雅,简洁,好看),建议每行不要超过80个字符
# 语句如果想要跨行编写,直接加上\即可
# Python 是缩进严格的语言

# Python 中使用 # 表示注释,注意Python 中的注释都是使用的 # 表示单行注释,多行注释

# Python 中使用变量,不需要声明,直接为变量赋值即可
# 但是不能使用没有赋值过的变量
# Python 是动态类型的语言,可以为变量赋任意数据类型的值,也可以任意修改变量的值
salary = 100
print(salary)
salary = 'cris'
salary = 123_456_789		# 123456789
# salary = 012		报错
salary = "cris say:'hello!'"		# cris say:'hello!'
print(salary)
content = '''hello
world!
Python
'''
print(content)
# hello
# world!
# Python
    
print("a=%s"%"cris")    # a=cris
print("a=%5s"%"cris")   # a= cris
print("a=%2.5s"%"cris") # a=cris

name = 'james'
c = f'my name is {name}'
print(c)        # my name is james

a = "cris"
a = a*2
print(a)    # criscris
a = True
print(a+1)  # 2

print(type(a))  # <class 'bool'>
print(type(1.1))
print(type(None))   # <class 'NoneType'>

print(id(12))   # 1797942688

a = 123
b = a
b = 321
print(a)    # 123
print(b)    # 321

# Python 不支持字符串的+ 连接其他数据类型
a = 'cris'
# a = a+12    报错
print(a)

# 类型转换有四个内置函数:int(), float(), str(), bool()
a = True
a = int(a)  # 1
print(type(a))  # <class 'int'>

# int(): 用来将其他的数据类型转换为整型
# 布尔值:True -> 1, False -> 0
# 浮点数:直接取整
# 字符串:必须是整数数字
# None:报错

# float():同int() 基本一致,只是将符合的数据类型转换为小数类型,例如 True -> 1.0, False -> 0.0
# str():将其他数据类型转换为字符串类型
a = "123"
print(a+str(456));
print(str(None))    # None

# bool():任何对象都可以转换为布尔值,所有表示空性的数据都是False,表示非空的数据都是True
# 0,'', None -> Flase

9、运算符(操作符)

- 运算符可以对一个值或多个值进行运算或各种操作
- 比如 + 、-、= 都属于运算符
- 运算符的分类:
    1.算术运算符
    2.赋值运算符
    3.比较运算符(关系运算符)
    4.逻辑运算符
    5.条件运算符(三元运算符)  

示例代码

# 算术运算符(+,-,*,/)

# 如果是两个字符串之间进行 + 操作,就会进行拼串;进行 - 操作,就会报错;
# 如果是一个字符串和整数进行 * 操作,就会对该字符串进行复制

# bool 可以参与计算(True->1, False->0)

# / 操作,总会返回一个浮点数类型
# // 整除,只会返回一个整数类型(舍弃小数部分)

# ** 求幂运算;如果 ** 0.5,表示求平方根

# % 取模运算,返回余数

# 浮点数进行运算,返回结果都是浮点数类型

a = 10+True    # 11
print(a)
a = a * False
print(a)    # 0    
a = "cris" * 2
print(a)    # criscris

a = 10 ** 2
print(a)    # 100

a = 10
print(a/2)  # 5.0

# 赋值运算符
# =;+=;-=;*=;**=;/=;//=;%=

# 关系运算符:用来比较两个值之间的关系,关系成立返回 True,关系不成立返回 False
# >; >=; ==; <; <=; !=
# True 和 False 也可以参与比较
# 支持两个字符串的比较,比较的是Unicode 值(逐位比较),可以用来排序字符串的字母顺序

print(1 == True)    # True

# == 和 != 比较的是对象的值,而不是 id
# 如果要比较对象的id(内存地址),需要使用 is 或者 is not

print(id(1), id(True))  # 1583901760 1583411360
print(1 == True)    # True

print(1 is True)    # False

# 逻辑运算符
# not 逻辑非,对于布尔值进行取反操作;对于非布尔值,先将其转换为布尔值,然后进行取反
# and 逻辑与,两端都是True,才为True,否则都为False,并且是短路与(优先找False,第一个值为False,不会计算第二个值 )
# or 逻辑或,有一个值为True,那么返回True,并且是短路或(优先找True,第一个值是True,不会计算第二个值)

a = 1
a = not a
print(a)    # False

a = False and True
print(a)    # False

a = False and 1/0
print(a)    # False

a = True or 1/0
print(a)    # True
# a = False or 1/0    # 报错

# 非布尔值的与或运算,Python 自动将它们转换为布尔值
# 与运算:如果第一个值是True,那么直接返回第二个值的原值;如果第一个值是False,直接返回第一个值的原值
# 或运算:如果第一个值是True,那么直接返回第一个值的原值;如果第一个值是False,直接返回第二个值的原值
a = 1 and 0
print(a)    # 0
a = 0 and 'cris'
print(a)    # 0

a = 1 or 0
print(a)    # 1
a = None or 2
print(a)    # 2

# 连续>或者<的语句其实就是逻辑运算符(Python 独有的)
a = 1<2<3   # 等价于 1<2 and 2<3

# 条件运算符(三目运算符)
# 语法:语句1 if 条件表达式 else 语句2
# 如果条件表达式为True,执行语句1并返回结果
# 如果条件表达式为False,执行语句2并返回结果

print("cris" if 2 > 0 else 'simida')    # cris
print('cris' if 1 > 4 else 'simida')    # simida

# 获取a和b之间的最大值
a = 10
b = 20
max = a if a>=b else b
print(max)  # 20

# 计算三个数之间的最大值
c = 30
max = a if a>b else b
max = max if max>c else c
print(c)    # c

# max = a if (a>b and a>c) else (b if b>c else c)

# 运算符的优先级(and 的优先级大于 or,推荐查看运算符优先级表或者使用括号提高语句的优先级)

10、脑图

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/cris_zz/article/details/83053002