一、一门编程语言入门标配语句——Hello World!
1. 常用快捷键
- Ctrl + / -------------- 单行注释
- Ctrl + s -------------- 保存
- Ctrl + b -------------- 编译执行
- Ctrl + n -------------- 新建文件
- Ctrl + c -------------- 复制
- Ctrl + v -------------- 粘贴
- Ctrl + a -------------- 全选
- Ctrl + x -------------- 剪切
- Ctrl + z -------------- 撤销
- Ctrl + y/ Ctrl + shift + z -------------- 反撤销
- 按住Ctrl不放,可在多个位置设置光标
- Ctrl + f -------------- 弹出搜索框
2. 内置函数与 Hello World !
2.1. print()函数,内置函数,在控制台打印参数内容,( )里面的引号,是字符串标志,而不会被打印到控制台。
(注意: 在Python 2.x 中,应为: print 'hello world!')
这是代码
print("Hello World!")
这是结果
Hello World!
2.2. 关于版本号的一些小知识
对于版本号A.B.C.
A > 重大修改(一般不向下兼容)
B > 添加新的功能
C > 修复Bug
二、Python中的基础语法
1.注释
注释是解释说明的文字,不参与编译运行
注意:好的程序员和好的代码,需要对代码通过注释进行解释说明
# 单行注释
"""
多行注释
"""
'''
多行注释
'''
补充:编程语言中涉及的符号都是英文符号
2. 标识符
标识符是用来程序中命名的. (例如: 变量名、类名、函数名)
- 标识符由字母、数字和下划线组成, 且不能由数字开头(硬性)
- 标识符不能是关键字(保留字)(硬性)
- 大小写敏感(区分大小写)
- 要见名之义(规范)
- 不推荐使用Python中内置函数、类名来作为标识符(规范)
3.关键字
系统保留的有特殊意义的单词,不能用于变量、类名、函数名. Python系统保留的关键字有:
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await',
'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except',
'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda',
nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with',
'yield']
可通过下面的代码查看
import keyword
print(keyword.kwlist)
tips: Python 3.x 中支持用汉字作为变量名
下面是演示
成都 = 666
成都2 = 999
print('成都',成都,'成都2',成都2)
下面是结果
成都 666 成都2 999
4. 行与缩进
- 缩进: 每一行代码与行开头位置之间的空格
- 在Python中缩进的写法有严格规范,同一级代码必须写在同一个缩进下面
- 如果在不该存在空格的地方出现空格,程序运行就会报错
- 需要空格的位置没有空格,程序运行也会报错
- 行的规范:函数的声明前后必须有两个换行。一般一个功能实现完,实现下一个功能时,也最好换行
5.多行语句
一条语句在多行显示
a. 在需要换行时,在需要换行出加反斜杠(\)
b. 字典、列表、集合和元组等容器类型数据的字面量,可直接换行多条语句在一行显示
Python中,语句结束时,分号可省略; 但一行中写多条语句时,语句必须用分号';'隔开
例如
# 一条语句在多行显示
print('先帝创业未半而中道崩殂,\
今天下三分,益州疲弊,此诚危急存亡之秋也。\
然侍卫之臣不懈于内,忠志之士忘身于外者,\
盖追先帝之殊遇,欲报之于陛下也。\
诚宜开张圣听,以光先帝遗德,\
恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。 ')
# 多条语句在一行显示
print('坚持到感动自己'); print('拼搏到无能为力')
下面是结果
先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
坚持到感动自己
拼搏到无能为力
6. 字面量
- 数据类型对应的具体的值
- 10,1000,-3 ---------------------------------------------------- 整型
- 12e3,4e-3 ----------------------------------------------------- 数值
- 1+2i ------------------------------------------------------------- 复数
- 3.14,12.56, 2.718 ----------------- 浮点型(小数)和科学计数
- 'hello world','9527' --------------------------------------- 字符型
- True,False ------------------------------------------------- 布尔型
- [1,3,5,'luo','asgrad'] ----------------------------------------- 列表
- {'a': 1, 'b':'d'} -------------------------------------------------- 字典
7.Python中的基本数据类型
- 数字(整型(int)、浮点型、布尔型、复数、字符串、列表、字典、集合、元组、none
- 整型: int (Python 2.x 中还有long)
- 浮点型: float --> 所有小数
- 布尔型: bool --> 只有True和False
- 复数: complex --> 包含所有复数
- 字符串: str-->所有能从键盘输入的字符
- 列表: list
- 字典: dict
- 集合: set
- 元组: tuple
- none(表示空值)
tips: 可以用type()函数查看数据类型: type(数据)
例如:
print(type(2e3))
print(type(False))
print(type('asdf '))
print(type("sdfgh"))
结果如下
<class 'float'>
<class 'bool'>
<class 'str'>
<class 'str'>
三、Python中的变量
1. 什么是变量
在程序中可以通过变量来存储数据(容器)
2. 如何声明变量
严格来说, Python中的变量是不需要声明的, 直接通过赋值符号('=')给变量赋值,就是在声明变量, 因为Python是动态语言,在声明变量的时候, 不需要指定数据类型。并且同一个变量可赋不同类型的值
格式: 变量名 = 值
变量名即标识符 ,有两种命名方式
PEP8命名:所有字母小写,多个单词间用下划线隔开。例如: user_name
驼峰式命名:第一个单词首字母小写,后面每个单词首字母都大写。例如: userName
声明变量age并赋值为18
age = 18
使用变量时,就相当于使用变量中存的值
例如
print(age)
student_age = 16
print(student_age)
print(type(student_age))
# 重新给变量赋值,新的值会覆盖旧的值
student_age = '18'
print(student_age)
print(type(student_age))
结果如下
16
<class 'int'>
18
<class 'str'>
补充:
- 一个数据有type(类型)、ID(数据储存在计算机中的地址)和value(值)三个属性
- 变量存储数据时,有两种情况.
- 第一种情况:存value ---> 数字类型、字符串
- 第二种情况:存ID ----> 列表,字典
四、Python中的运算符
数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算符(针对二进制的每一位)
1. 数学运算符(+、-、、/、%、*、//)
1.1. + :求和
注意: 求和操作'+'两边必须是数字类型
示例:
#True ---> 1 False ---> 0
print(10+20.4,True+1)
结果
30.4 2
1.2. - : 求差
示例:
print(100-36)
结果
64
1.3. * : 求乘积
示例:
print(3.14*4)
结果
12.56
1.4. / : 求商
示例:
print(10/4,4/10)
结果
2.5 0.4
1.5. % :求两个数相除的余数
示例:
print(105%4)
print(109%3.4)
print(120.3%4)
print(124.7%5.2)
结果
1
0.20000000000000284
0.29999999999999716
5.099999999999999
1.6. ** : 幂运算
x**y :求x的y次方
示例:
# 浮点数在计算机中的储存有一定误差
number =4.2 **3
print(number,2 ** 3)
结果
74.08800000000001 8
1.7. // : 整除
求商,但只取整数部分
示例:
print(5//2)
# 去一个两位数中十位上的数
print(78//10)
# 取2345中的4:
print(2345%100//10)
print(2345//10%10)
结果
2
7
4
4
2.比较运算符
< 、 > 、== 、>= 、!=
注意: 比较运算符的结果全是布尔型:True or False
2.1. x > y : 如果x大于y,则结果为True,否则为False
例:
print(2>3,5>3)
结果
False True
2.2. x < y : 如果x小于y,则结果为True,否则为False
例:
print(2<3,5<3)
结果
>True False
2.3. x == y : 如果x等于y,则结果为True,否则为False
例:
```Python
print(2 == 2 , 3 == 2 )
结果
True False
2.4.x <= y、 x >= y
例:
print(2<=2,2<=3,3<=2)
结果
True True False
2.5. x != y:
例:
print(2!=2,2!=3)
结果
False True
2.6. 在Python中, 可以像数学中一样,连续判断
例:
print(10<12<15)
结果
True
3.逻辑运算符
与(and)、或(or)、非(not)的结果都是布尔型
布尔1 and 布尔2
当且仅当两个都为True时,结果才是True
例:
print(True and True,True and False,False and True, False and False)
结果
True False False False
布尔1 or 布尔2 当且仅当两个都为False时,结果才是False
例:
print(True or True,True or False,False or True, False or False)
结果
True True True False
not 布尔1 布尔1为True时,结果为False,否则为True
例:
print(not True, not False)
结果
False True
一些例子
# 写一个条件,判断一个的年龄是否满足青年的条件(年龄大于18并且小于30,且不能为20)
age1 = 16
age2 = 26
print(age1 > 18 and age1 < 30 and not age1 == 20)
print(age2 > 18 and age2 < 30 and age2 != 20)
# 平时成绩不低于80,或卷面成绩不低于70,且英语成绩不低于68
score = 90
score2 = 92
English =100
print(score>=80 or score2 >= 70 and English >=68)
# 成绩不低于60
score = 70
print(score>=60)
print(not score<60)
结果
False
True
True
True
True
4.赋值运算符
= 、+= 、-= 、= 、/= 、%= 、*= 、//=
赋值运算符的作用: 将赋值符号右边的表达式的值赋给左边的变量
表达式: 有结果的语句, 例如: 10, 'ABC', 10+20, 30>10.5
注意: 赋值符号左边必须是变量, 赋值是先计算,再赋值
例:
num = 10
num += 1 # 等同于num = num + 1
print(num)
num *= 2 # 等同于num = num * 2
print(num)
结果
11
22
5.运算符的优先级
10+20*2-3/6 = 10 + 40 -0.5 = 49.5
优先级: 赋值运算符 < 逻辑运算符 < 比较运算符 < 算术运算符
算术运算符优先级: 先幂运算,再乘除取余取整,再加减
tips :不确定运算顺序时,可以添加括号来改变运算顺序,优先计算括号中的内容
例:
result = 1+2>4 or 6*7 < 87 - 32
print(result)
print(12+34/2*3-104%23-5*2**3)
结果
True
11.0
五、Python中的进制转换
数据在计算机中的存储,存的都是二进制(01011001010101001...)
1.十进制
基数: 0,1,2,3,4,5,6,7,8,9
特点: 逢十进一
12345 = 10000 + 2000 + 300 + 40 + 5
= 1*10000 + 2*1000 + 3*100 + 4*10 + 5
= 1*10^4 +2*10^3 + 3*10^2 + 4*10^1 + 5*10^0
2.二进制
基数: 0,1
特点: 逢二进一
101011 = 1*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0
3.八进制
基数: 0,1,2,3,4,5,6,7
特点: 逢八进一
24 = 2*8^1 + 4*8^0
4.十六进制
基数:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
特点:逢十六进一
2F = 2*16^1 + 15*16^0
进制间的转换:
十进制转换成其他进制: 整数取余法
八进制转二进制:一位八进制转换成三位二进制 23--> 010 011
十六进制转二进制: 一位十六进制转换成四位二进制 2F --> 0010 1111
Python中的二进制,八进制和十六进制
默认为十进制
123
789
基数是0,1, 且以0b开头的数字表示二进制
0b10011101
基数是0,1,2,3,4,5,6,7,且以0o开头的数字表示八进制
0o353547
基数是0-9, A-F (a-f), 且以0x开头的数字表示十六进制
0x78ef
0x98ae
# bin()将其他进制整数转换为二进制数
print(bin(15),bin(0x98ae))
# Oct()将其他进制整数转换为八进制数
print(oct(123),oct(0b10011101))
# hex()将其他进制整数转换为十六进制数
print(hex(10),hex(0b10011101))
结果
0b1111 0b1001100010101110
0o173 0o235
0xa 0x9d