【0基础学Python】基础语法Part1
第一个python程序
print(1+2-3)
print('hello world!')
print(1+2/3)
熟悉 C / Java 的同学可能认为, 2 / 3 结果为 0 (小数部分被截断). 但是在 Python 中得到的结果则是 一个小数. 更符合日常使用的直觉。
变量和类型
python无需声明变量类型,会自动确定你所写的变量的类型。
变量的语法
(1)定义变量
a = 10
创建变量的语句非常简单, 其中 a 为变量名.
- 当我们创建很多个变量的时候, 就可以用名字来进行区分.
- = 为赋值运算符, 表示把 = 右侧的数据放到 = 左侧的空间中.
遵守硬性规则(务必遵守)
- 变量名由数字字母下划线构成.
- 数字不能开头.
- 变量名不能和 “关键字” 重复.
- 变量名大小写敏感.
- num 和 Num 是两个不同的变量名.
除了以上规则,应尽量变量名有意义化,规范化,使用学习命名方法。
使用变量
- 读取变量
a = 10
print(a)
- 修改变量
a = 20
print(a)
在 Python 中, 修改变量也是使用 = 运算, 看起来和定义变量没有明显区别.
变量的类型
在python中有必要介绍一下变量类型有哪些。
-
整数
a = 10 print(type(a)) # type 和 print 类似, 也是 python 内置的函数. 可以使用 type 来查看一个变量的类型.
注意: 和 C++ / Java 等语言不同, Python 的 int 类型变量, 表示的数据范围是没有上限的. 只要内存足够大, 理论上就可以表示无限大小的数据.
- 浮点型(小数)
a = 0.5
注意: 和 C++ / Java 等语言不同, Python 的小数只有 float 一种类型, 没有 double 类型. 但是实际上 Python 的 float 就相当于 C++ / Java 的 double, 表示双精度浮点数.
- 字符串
a = 'hello'
print(type(a))
使用 ’ ’ 或者 " " 引起来的, 称为 字符串. 可以用来表示文本.
注意: 在 Python 中, 单引号构成的字符串和双引号构成的字符串, 没有区别. ‘hello’ 和 “hello” 是 完全等价的.
可以使用len函数来获取字符串长度。
a = 'hello'
print(len(a))
可以使用+针对两个字符串进行拼接。
a = 'hello'
b = 'world'
print(a+b)
- 布尔类型
布尔类型是一个特殊的类型, 取值只有两种, True (真) 和 False (假)。
布尔类型也是数学上的一个概念. 我们初中就学过一个概念叫做 “命题” , 进一步的就可以判定命题的真假.
a = True
print(type(a))
b = False
print(type(b))
除了上述基本数据类型以外,还有其他较为复杂的数据类型以及自定义类型,后续将会介绍。
为什么要有这么多类型
- 类型决定在内存中占据的空间
- 类型决定其对变量能做什么样的操作
- 对变量进行归类
动态类型
在 Python 中, 一个变量是什么类型, 是可以在 “程序运行” 过程中发生变化的. 这个特性称为 “动态类型” .
a = 10
print(type(a))
a = 'hello'
print(type(a))
# 在程序执行过程中, a 的类型刚开始是 int, 后面变成了str
动态类型特性是一把双刃剑。
- 对于中小型程序, 可以大大节约代码量(比如写一段代码就可以同时支持多种类型).
- 对于大型程序, 则提高了模块之间的交互成本.
输入输出
输入:print(hello)
输出:
num=0
num=input('请输入一个整数:')
-
input的参数可有可无,当作提示信息
-
input的返回值就是用户输入的内容,类型是字符串
-
根据第二点,如果两个输入内容相加,则是字符串拼接而不是算术运算。如果需要算术运算,则应该转换类型
a = input('请输入第一个整数: ') b = input('请输入第二个整数: ') a = int(a) b = int(b) print(f'a + b = {a + b}')
-
使用 f 作为前缀的字符串, 称为 f-string, 里面可以使用 { } 来内嵌一个其他的变量/表达式(用于混合字符串和变量)
运算符
算术运算符
- **:求平方
- //:取整除法,整数除以整数,结果还是整数(舍弃小数部分,向下取整)
关系运算符
- 关系符合返回True,不符合返回False
- 关系运算符除了整数/浮点数的比较,还可以对字符串进行比较,按照字典序
关于字典序: 想象一个英文词典, 上面的单词都是按照字母顺序排列. 如果首个字母相同, 就比较第二个字母. (就 比如著名单词 abandon). 我们认为一个单词在词典上越靠前, 就越小. 越靠后, 就越大.
- 浮点数不能使用和
==
判定相等,因为不精准
逻辑运算符
- and:并且。 两侧操作数均为 True, 最终结果为 True. 否则为 False. (一假则假)
- or:或者。 两侧操作数均为 False, 最终结果为 False. 否则为 True. (一真则真)
- not:逻辑取反。操作数本身为 True, 则返回 False. 本身为 False, 则返回 True.
注意:
a<b and b<c
等价于a<b<c
- 短路求值:对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行.;对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行.
赋值运算符
-
=
-
复合赋值运算符:
+= -= *= /= %=
a+=1 等价于 a=a+1,其他同理。
但是不支持自增自减
数据结构
[] {2,3,2}
定义函数
类
文件
如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行.;对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行.
赋值运算符
-
=
-
复合赋值运算符:
+= -= *= /= %=
a+=1 等价于 a=a+1,其他同理。
但是不支持自增自减