02基本语法

print('he\
aaa\
aaa')

# 这是一个打印语句,请你看见了不要慌张
# 这是一个注释
# 注释会被解释器所忽略
# print(123+456) 这行代码被注释了,将不会执行
print('abc') # 这是一个单行注释

# Python中使用变量,不需要声明,直接为变量赋值即可
a = 10

# 不能使用没有进行过赋值的变量
# 如果使用没有赋值过的变量,会报错 NameError: name 'b' is not defined
# print(b)

# Python是一个动态类型的语言,可以为变量赋任意类型的值,也可以任意修改变量的值
a = 'hello'

# print(a)

03变量和标识符

# 标识符
# 在Python中所有可以自主命名的内容都属于标识符
# 比如:变量名、函数名、类名
# 标识符必须遵循标识符的规范
# 1.标识符中可以含有字母、数字、_,但是不能使用数字开头
# 例子:a_1 _a1 _1a
# 2.标识符不能是Python中的关键字和保留字
# 也不建议使用Python中的函数名作为标识符,因为这样会导致函数被覆盖
# 3.命名规范:
# 在Python中注意遵循两种命名规范:
# 下划线命名法
# 所有字母小写,单词之间使用_分割
# max_length min_length hello_world xxx_yyy_zzz
# 帕斯卡命名法(大驼峰命名法)
# 首字母大写,每个单词开头字母大写,其余字母小写
# MaxLength MinLength HelloWorld XxxYyyZzz
#
# 如果使用不符合标准的标识符,将会报错 SyntaxError: invalid syntax
# 练习:尝试自己定义几个变量(复杂一些,尝试不同的命名法),然后打印一些变量
# 通过搜索引擎搜索还有哪些其他的命名规范
_b123 = 20
# print(_b123)

# print = 123
# print(print)

04  数值

# 在Python数值分成了三种:整数、浮点数(小数)、复数
# 在Python中所有的整数都是int类型
a = 10
b = 20
# Python中的整数的大小没有限制,可以是一个无限大的整数
# c = 999999999999999999999999999999999999999999999 ** 100

# 如果数字的长度过大,可以使用下划线作为分隔符
c = 123_456_789

# d = 0123 10进制的数字不能以0开头
# 其他进制的整数,只要是数字打印时一定是以十进制的形式显示的
# 二进制 0b开头
c = 0b10 # 二进制的10
# 八进制 0o开头
c = 0o10
# 十六进制 0x开头
c = 0x10

# 也可以通过运算符来对数字进行运算,并且可以保证整数运算的精确
c = -100
c = c + 3

# 浮点数(小数),在Python中所有的小数都是float类型
c = 1.23
c = 4.56

# 对浮点数进行运算时,可能会得到一个不精确的结果
c = 0.1 + 0.2 # 0.30000000000000004

print(c)

05字符串

# 字符串(str)
# 字符串用来表示一段文本信息,字符串是程序中使用的最多的数据类型
# 在Python中字符串需要使用引号引起来

s = 'hello'
# s = abc # 字符串必须使用引号引起来,不使用不是字符串
# 引号可以是双引号,也可以是单引号,但是注意不要混着用
s = 'hello'
s = "hello"
# s = 'hello" 引号不能混合使用 SyntaxError: EOL while scanning string literal

# 相同的引号之间不能嵌套
# s = "子曰:"学而时习之,乐呵乐呵!""
s = '子曰:"学而时习之,乐呵乐呵!"'

# 长字符串
# 单引号和双引号不能跨行使用
s = '锄禾日当午,\
汗滴禾下土,\
谁知盘中餐,\
粒粒皆辛苦'

# 使用三重引号来表示一个长字符串 ''' """
# 三重引号可以换行,并且会保留字符串中的格式

s = '''锄禾日当午,
汗滴禾下土,
谁知盘中餐,
粒粒皆辛苦'''

# 转义字符
# 可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容
# 例子:
# \' 表示'
# \" 表示"
# \t 表示制表符
# \n 表示换行符
# \\ 表示反斜杠
# \uxxxx 表示Unicode编码
s = "子曰:\"学而时习之,\\\\n乐呵乐呵!\""

s = '\u2250'
print(s)

06格式化字符串

a = 'hello'

# 字符串之间也可以进行加法运算
# 如果将两个字符串进行相加,则会自动将两个字符串拼接为一个
a = 'abc' + 'haha' + '哈哈'
# a = 123
# 字符串只能不能和其他的类型进行加法运算,如果做了会出现异常 TypeError: must be str, not int
# print("a = "+a) # 这种写法在Python中不常见
a = 123
# print('a =',a)

# 在创建字符串时,可以在字符串中指定占位符
# %s 在字符串中表示任意字符
# %f 浮点数占位符
# %d 整数占位符
b = 'Hello %s'%'孙悟空'
b = 'hello %s 你好 %s'%('tom','孙悟空')
b = 'hello %3.5s'%'abcdefg' # %3.5s字符串的长度限制在3-5之间
b = 'hello %s'%123.456
b = 'hello %.2f'%123.456
b = 'hello %d'%123.95
b = '呵呵'

# print('a = %s'%a)

# 格式化字符串,可以通过在字符串前添加一个f来创建一个格式化字符串
# 在格式化字符串中可以直接嵌入变量
c = f'hello {a} {b}'

print(f'a = {a}')

# 练习 创建一个变量保存你的名字,然后通过四种格式化字符串的方式
# 在命令行中显示,欢迎 xxx 光临!

07复制字符串

# 创建一个变量来保存你的名字
name = '孙悟空'

# 使用四种方式来输出,欢迎 xxx 光临
# 拼串
print('欢迎 '+name+' 光临!')
# 多个参数
print('欢迎',name,'光临!')
# 占位符
print('欢迎 %s 光临!'%name)
# 格式化字符串
print(f'欢迎 {name} 光临!')

# 字符串的复制(将字符串和数字相乘)
a = 'abc'
# * 在语言中表示乘法
# 如果将字符串和数字相乘,则解释器会将字符串重复指定的次数并返回
a = a * 20

print(a)

08布尔值(bool)和空值

# 布尔值主要用来做逻辑判断# 布尔值一共有两个 True 和 False
# True表示真 False表示假
a = True
a = False
# print('a =',a)

# 布尔值实际上也属于整型,True就相当于1,False就相当于0
# print(1 + False)

# None(空值)
# None专门用来表示不存在
b = None
print(b)

09 类型检查

# 通过类型检查,可以检查只能值(变量)的类型

a = 123 # 数值
b = '123' # 字符串

# print('a =',a)
# print('b =',b)、

# type()用来检查值的类型
# 该函数会将检查的结果作为返回值返回,可以通过变量来接收函数的返回值
c = type('123')
c = type(a)
# print(type(b))
print(type(1)) # <class 'int'>
print(type(1.5)) # <class 'float'>
print(type(True)) # <class 'bool'>
print(type('hello')) # <class 'str'>
print(type(None)) # <class 'NoneType'>

10类型转换

# 类型转换四个函数 int() float() str() bool()
# int() 可以用来将其他的对象转换为整型
# 规则:
# 布尔值:True -> 1 False -> 0
# 浮点数:直接取整,省略小数点后的内容
# 字符串:合法的整数字符串,直接转换为对应的数字
# 如果不是一个合法的整数字符串,则报错 ValueError: invalid literal for int() with base 10: '11.5'
# 对于其他不可转换为整型的对象,直接抛出异常 ValueError
# float() 和 int()基本一致,不同的是它会将对象转换为浮点数
# str() 可以将对象转换为字符串
# True -> 'True'
# False -> 'False'
# 123 -> '123'
# 。。。
# bool() 可以将对象转换为布尔值,任何对象都可以转换为布尔值
# 规则:对于所有表示空性的对象都会转换为False,其余的转换为True
# 哪些表示的空性:0 、 None 、 '' 。。。

a = True

# 调用int()来将a转换为整型
# int()函数不会对原来的变量产生影响,他是对象转换为指定的类型并将其作为返回值返回
# 如果希望修改原来的变量,则需要对变量进行重新赋值
a = int(a)

a = False
a = int(a)

a = '123'
a = int(a)

a = 11.6
a = int(a)

a = '11.5'
# a = int(a)

a = None
# a = int(a)

a = 1
a = float(a)

a = False
a = float(a)

a = 123
a = str(a)

a = None
a = bool(a)

print('a =',a)
print('a的类型是',type(a))
# b = 456
# print('hello'+str(b))

11算术运算符

# 算术运算符
# + 加法运算符(如果是两个字符串之间进行加法运算,则会进行拼串操作)
# - 减法运算符
# * 乘法运算符(如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数)
# / 除法运算符,运算时结果总会返回一个浮点类型
# // 整除,只会保留计算后的整数位,总会返回一个整型
# ** 幂运算,求一个值的几次幂
# % 取模,求两个数相除的余数

a = 10 + 5 # 计算
a = 'hello' + ' ' + 'world' # 拼串

a = 10 - 5 # 计算
a = 5 - True
a = a - 2 # 用变量a的值减去2,然后再赋值给a
# a = 'hello' - 'h' TypeError

a = 5 * 5

a = 10 / 5
a = 5 / 2
# a = 5 / 0 ZeroDivisionError: division by zero
a = 10 / 3
a = 10 // 3
a = 5 // 2

a = 2 ** 2
a = 10 ** 5
a = 16 ** 0.5 # 求16的平方根

a = 10 % 5 # 0
a = 10 % 4 # 2
a = 10 % 3 # 1
a = 10 % 2 # 0

print("a =",a)

12赋值运算符

# 赋值运算符
# = 可以将等号右侧的值赋值给等号左侧的变量
# += a += 5 相当于 a = a + 5
# -= a -= 5 相当于 a = a - 5
# *= a *= 5 相当于 a = a * 5
# **= a **= 5 相当于 a = a ** 5
# /= a /= 5 相当于 a = a / 5
# //= a //= 5 相当于 a = a // 5
# %= a %= 5 相当于 a = a % 5
a = 10
# a = a + 5
# a += 5
a -= 5
a *= 5
a **= 2
a /= 25
a = 25.0 # 在对浮点数做算术运算时,结果也会返回一个浮点数
a //= 5
a = 5
a %= 4

print('a =',a)

13关系运算符

# 关系运算符
# 关系运算符用来比较两个值之间的关系,总会返回一个布尔值
# 如果关系成立,返回True,否则返回False
# > 比较左侧值是否大于右侧值
# >= 比较左侧的值是否大于或等于右侧的值
# < 比较左侧值是否小于右侧值
# <= 比较左侧的值是否小于或等于右侧的值
# == 比较两个对象的值是否相等
# != 比较两个对象的值是否不相等
# 相等和不等比较的是对象的值,而不是id
# is 比较两个对象是否是同一个对象,比较的是对象的id
# is not 比较两个对象是否不是同一个对象,比较的是对象的id
result = 10 > 20 # False
result = 30 > 20 # True
result = 30 < 20 # False
result = 10 >= 10 # True

result = 2 > True # True
# result = 2 > '1' TypeError: '>' not supported between instances of 'int' and 'str'

# 0032 > 0031
result = '2' > '1' # True
result = '2' > '11' # True

# 在Python中可以对两个字符串进行大于(等于)或小于(等于)的运算,
# 当对字符串进行比较时,实际上比较的是字符串的Unicode编码
# 比较两个字符串的Unicode编码时,是逐位比较的
# 利用该特性可以对字符串按照字母顺序进行排序,但是对于中文来说意义不是特别大
# 注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较
# 0061 > 0062
result = 'a' > 'b' # False
result = 'c' < 'd' # True
result = 'ab' > 'b' # False

# print(int('2') > int('11'))

result = 1 == 1 # True
result = 'hello' == 'hello' # True
result = 'abc' == 'bcd' # False
result = 'abc' != 'bcd' # True
result = 1 == True # True
result = 1 is True # False
result = 1 is not True # True
print('result =',result)
print(id(1),id(True))

14逻辑运算符

# 逻辑运算符
# 逻辑运算符主要用来做一些逻辑判断
# not 逻辑非
# not可以对符号右侧的值进行非运算
# 对于布尔值,非运算会对其进行取反操作,True变False,False变True
# 对于非布尔值,非运算会先将其转换为布尔值,然后再取反
#
# and 逻辑与
# and可以对符号两侧的值进行与运算
# 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
# 与运算是找False的
# Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值
#
# or 逻辑或
# or 可以对符号两侧的值进行或运算
# 或运算两个值中只要有一个True,就会返回True
# 或运算是找True的
# Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值
#
# 练习:
# 尝试一下对布尔值进行三种逻辑运算
# 尝试对非布尔值进行三种逻辑运算,并观察返回的结果
#

a = True
a = not a # 对a进行非运算

a = 1
a = ''
a = not a
# print('a =',a)

result = True and True # True
result = True and False # False
result = False and True # False
result = False and False # False

# print(result)

# True and print('你猜我出来吗?') 第一个值是True,会看第二个值,所以print()会执行
# False and print('你猜我出来吗?')第一个值是False,不会看第二个值,所以print()不会执行

result = True or True # True
result = True or False # True
result = False or True # True
result = False or False # False

# print(result)
# False or print('你猜我出来吗?') 第一个值为False,继续看第二个,所以打印语句执行
# True or print('你猜我出来吗?') 第一个值为True,不看第二个,所以打印语句不执行

# 非布尔值的与或运算
# 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
# 与运算的规则
# 与运算是找False的,如果第一个值是False,则不看第二个值
# 如果第一个值是False,则直接返回第一个值,否则返回第二个值
# 或运算的规则
# 或运算是找True的,如果第一个值是True,则不看第二个值
# 如果第一个值是True,则直接返回第一个值,否则返回第二个值

# True and True
result = 1 and 2 # 2
# True and False
result = 1 and 0 # 0
# False and True
result = 0 and 1 # 0
# False and False
result = 0 and None # 0

# True or True
result = 1 or 2 # 1
# True or False
result = 1 or 0 # 1
# False or True
result = 0 or 1 # 1
# False or False
result = 0 or None # None

print(result)

15条件运算符

# 条件运算符(三元运算符)
# 语法: 语句1 if 条件表达式 else 语句2
# 执行流程:
# 条件运算符在执行时,会先对条件表达式进行求值判断
# 如果判断结果为True,则执行语句1,并返回执行结果
# 如果判断结果为False,则执行语句2,并返回执行结果
# 练习:
# 现在有a b c三个变量,三个变量中分别保存有三个数值,
# 请通过条件运算符获取三个值中的最大值

# print('你好') if False else print('Hello')

a = 30
b = 50

# print('a的值比较大!') if a > b else print('b的值比较大!')
# 获取a和b之间的较大值
max = a if a > b else b

print(max)

16运算符优先级

a = 40
b = 50
c = 30

# 通过条件运算符获取三个值中的最大值
# max = a if a > b else b
# max = max if max > c else c

max = a if (a > b and a > c) else (b if b > c else c) # 不推荐这么使用
# max = a if (b < a > c) else (b if b > c else c)

# print(max)

# 运算符的优先级
# 和数学中一样,在Python运算也有优先级,比如先乘除 后加减
# 运算符的优先级可以根据优先级的表格来查询,
# 在表格中位置越靠下的运算符优先级越高,优先级越高的越优先计算
# 如果优先级一样则自左向右计算
# 关于优先级的表格,你知道有这么一个东西就够了,千万不要去记
# 在开发中如果遇到优先级不清楚的,则可以通过小括号来改变运算顺序
a = 1 + 2 * 3

# 一样 and高 or高
# 如果or的优先级高,或者两个运算符的优先级一样高
# 则需要先进行或运算,则运算结果是3
# 如果and的优先级高,则应该先计算与运算
# 则运算结果是1
a = 1 or 2 and 3

# print(a)

# 逻辑运算符(补充)
# 逻辑运算符可以连着使用
result = 1 < 2 < 3 # 相当于 1 < 2 and 2 < 3
result = 10 < 20 > 15

print(result)

python第2~5章 code的更多相关文章

  1. 进击的Python【第十七章】:jQuery的基本应用

    进击的Python[第十七章]:jQuery的基本应用

  2. 《Think Python》第17章学习笔记

    目录 <Think Python>第17章学习笔记 17.1 面向对象的特性(Object-oriented features) 17.2 打印对象(Printing objects) 1 ...

  3. 《Think Python》第16章学习笔记

    目录 <Think Python>第16章学习笔记 16.1 Time 16.2 纯函数(Pure functions) 16.3 修改器(Modifiers) 16.4 原型 vs. 方 ...

  4. 《Think Python》第15章学习笔记

    目录 <Think Python>第15章学习笔记 15.1 程序员定义的类型(Programmer-defined types) 15.2 属性(Attributes) 15.3 矩形( ...

  5. 进击的Python【第四章】:Python的高级应用(一)

    Python的高级应用(一) 本章内容: 内置函数 生成器 迭代器 装饰器 JSON和PICKLE的简单用法 软件目录结构规范 一.内置函数 1.数学运算类 abs(x) 求绝对值1.参数可以是整型, ...

  6. 《零压力学Python》 之 第一章知识点归纳

    第一章(初识Python)知识点归纳 Python是从ABC语言衍生而来的 ABC语言是Guido参与设计的一种教学语言,为非专业编程人员所开发的. Python是荷兰程序员 Guido Van Ro ...

  7. python 教程 第六章、 模块

    第六章. 模块 1) 模块 sys模块 字节编译的.pyc文件,优化编译后生成pyo文件 2) from..import语句 import sys print 'The command line ar ...

  8. 《流畅的Python》Data Structures--第2章序列array

    第二部分 Data Structure Chapter2 An Array of Sequences Chapter3 Dictionaries and Sets Chapter4 Text vers ...

  9. 进击的Python【第七章】:Python的高级应用(四)面向对象编程进阶

    Python的高级应用(三)面向对象编程进阶 本章学习要点: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 一.面向对象高级语法部分 静态方法 ...

  10. 进击的Python【第六章】:Python的高级应用(三)面向对象编程

    Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语: ...

随机推荐

  1. Falcon 登陆 Hugging Face 生态

    引言 Falcon 是由位于阿布扎比的 技术创新研究院 (Technology Innovation Institute,TII) 创建的一系列的新语言模型,其基于 Apache 2.0 许可发布. ...

  2. uniapp企业微信web-view父子通信问题

    项目背景:开发工具为HBuilderX,框架为uniapp,开发移动端的Web应用,在企业微信中使用(自建应用),Web开发的应用,不是小程序. 需求:页面中用到<web-view>组件, ...

  3. Spring源码核心剖析

    前言 SpringAOP作为Spring最核心的能力之一,其重要性不言而喻.然后需要知道的是AOP并不只是Spring特有的功能,而是一种思想,一种通用的功能.而SpringAOP只是在AOP的基础上 ...

  4. Linux下日志管理工具Logrotate

    背景: 项目上的Nginx和Tomcat已经跑了大半年了,Nginx的access.log和error.log将近1G大小:Tomcat下的catalina.out日志经常跑到打不出日志然后进行手动移 ...

  5. google colab使用体验

    复现的TRSSL 的代码似乎是python3.8的,在本地跑电脑带不起来,即时把处理图形数改为1 但是colab用3.8不太好下载包, 因此直接上了3.9 除了一些库没有意外,遇到了一点小问题: Ca ...

  6. prometheus描点原理

    大家好,我是蓝胖子,关于prometheus的入门教程有很多,拿我之前学prometheus的经历来讲,看了很多教程,还是会对prometheus的描点以及背后的统计原理感到迷惑,所以今天我们就来分析 ...

  7. CentOS上安装Redis的两种方式

    今天小编给大家介绍下,如何在CentOS上安装Redis.通常有两种方式:第一种是通过下载源码并编译来安装,第二种是通过仓库直接安装.相较而言,第二种方式更直截了当,但小编更倾向第一种. 一.通过源码 ...

  8. Designer属性编辑器简介

    objectName,控件对象名称. ● geometry,相对坐标系. ● sizePolicy,控件大小策略. ● minimumSize,最小宽度.高度. ● maximumSize,最大宽度. ...

  9. Mybatis开发中的常用Maven配置

    Mybatis导入Maven配置 <!-- MyBatis导入 --> <dependency> <groupId>org.mybatis</groupId& ...

  10. 交换分区swap的创建与管理

    前言 swap分区是linux系统中一块特殊的硬盘空间,当实际内存不够用的时候,系统会按照一定的算法将部分不用的数据放在swap分区中,从而为当前运行的程序腾出足够的内存空间.好处在于避免内存资源不足 ...