章节分篇链接:
【李刚-21天通关Python-01】之 数据类型
【李刚-21天通关Python-02】之 字符串
【李刚-21天通关Python-03】之 运算符
【李刚-21天通关Python-04】之 实操:简单计算器&进制转换
一、Python变量的特性
1、无需声明即可直接赋值
2、变量的数据类型可以动态改变
二、输出变量
1、使用 print() 函数 输出变量
2、使用 print( type() ) 输出变量的数据类型
三、标识符的规则
1、Python区分大小写
2、标识符可以由字母、数字、下划线组成,其中不能以数字开头
3、标识符不能是Python关键字
4、标识符不能包含空格
四、整型
1、十进制数:普通的整数
2、二进制数:以0b或0B开头的整数
3、八进制数:以0o或0O开头的整数
4、十六进制数:以0x或0X开头的整数
五、浮点型
1、十进制数形式:普通的浮点数
2、科学计数形式:例如 1.2e3
六、复数型
1、复数的虚部用 j或J 表达式
2、如果需要在程序中对复数进行计算,可导入Python的cmath模块,该模块下包含了支持各种复杂运算的函数
一、字符串的基础用法
1、字符串的内容几乎可以包含任何字符
2、即可用单引号,也可用双引号
3、若字符串包含了单引号或双引号,可采用以下方式处理:
(1)使用不同的引号将字符串括起来
(2)对引号进行转义(用反斜杠“\”)
str1 = "hello'python"
str2 = 'hello\'python'
二、字符串拼接
1、将两个字符串紧挨在一起,python就会自动拼接
2、使用“+”拼接两个字符串
3、数值必须先用 str() 或 repr() 转换
4、repr() 会以Python表达式的形式来表达值
s1 = 'python'
s2 = 10101
s3 = s1 + str(s2)
print(s3) # python10101
s4 = "hello"
print(str(s4)) # hello
print(repr(s4)) # 'hello'
三、获取用户输入
1、input() 向用户生成一条提示,然后获取用户的输入内容
2、Python 2.x的 raw_input() 相当于Python 3.x的 input()
s = input("请输入:")
print(s) # 请输入:
四、长字符串
1、长字符串使用三个引号括起来,可以是多行字符
2、Python还允许转义字符 “\” 对换行符转义
longstr1 = '''aaa
bbb
ccc'''
print(longstr1)
longstr2 = 'aaa \nbbb \nccc' # "\n"代表换行符
print(longstr2)
五、原始字符串
1、原始字符串以r开头,不会把反斜杠当成特殊字符
2、如果原始字符串中包含引号,程序同样要对引号进行转义
sr1 = r'hello\npyhthon'
print(sr1) # hello\npyhthon
sr2 = r'hello\'python'
print(sr2) # hello'python
六、字节串与字符串
1、字符串(str)由多个字符组成,字节串(bytes)由多个字节组成
2、bytes和str除了操作的数据单元不同以外,它们所有支持的方法都基本相同,bytes也是不可变序列
3、将字符串转换成bytes对象,有三种方式:
(1)如果字符串内容都是ASCII字符,可以通过直接在字符串之前添加b前缀来构建字节串值
b1 = b'abc'
print(b1) # b'abc'
print(type(b1)) #
(2)调用 bytes() 函数将字符串按指定字符集转成字节串,默认使用UTF-8字符集
b2 = bytes('我爱你', 'UTF-8')
print(b2) # b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'
print(type(b2)) #
(3)调用字符串本身的 encode() 方法将字符串按指定字符集转成字节串,默认使用UTF-8字符集
b3 = '我爱你'.encode()
print(b3) # b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'
print(type(b3)) #
4、将字节串转换成str对象:调用bytes对象的 decode() 方法将bytes对象解码成字符串
b4 = b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'
print(b4.decode('UTF-8')) # 我爱你
七、转义字符
转义字符 | 说明 |
---|---|
\b | 退格符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
" | 双引号 |
’ | 单引号 |
\\ | 反斜线 |
八、字符串格式化
使用“%”加转换说明符的方式执行字符串格式化
转换说明符 | 说明 |
---|---|
d,i | 转换为带符号的十进制整数 |
o | 转换为带符号的八进制整数 |
x,X | 转换为带符号的十六进制整数 |
e,E | 转换为科学计数法表示的浮点数 |
f,F | 转换为十进制浮点数 |
g | 智能选择使用f或e格式 |
G | 智能选择使用F或G格式 |
C | 转换为单字符(只接受整数或单字符字符串) |
r | 使用 repr() 将变量或表达式转换为字符串 |
s | 使用 str() 将变量或表达式转换为字符串 |
s1 = '我爱%s'
print(s1 % 'pyhton') # 我爱python
number = 128
s2 = '十进制:%d,八进制:%o,十六进制:%x,字符串:%s'
print(s2 % (number, number, number, number))
# 十进制:128,八进制:200,十六进制:80,字符串:128
九、序列相关方法
字符串本质就是由多个字符组成,字符串的本质就是不可变序列
1、基于索引的计算
s = 'hellopython.org'
#根据下标访问
print(s[4]) # 0
# 指定开始、结束
# 前端包含,后端不包含
print(s[2: 4]) # ll
# 指定开始、结束、间隔(步长)
# 前端包含,后端不包含
print(s[2: 6: 2]) #lo
2、in 运算
s = 'hellopython.org'
print('org' in s) # True
print('ork' in s) # False
3、len() 函数
s = 'hellopython.org'
print(len(s)) # 15
4、min() / max() 函数
s = 'hellopython.org'
print(min(s)) # .
print(max(s)) # y
十、大小写相关的方法
1、title() :将每个单词的首字母改为大写
2、lower() :将整个字符串改为小写
3、upper() :将整个字符串改为大写
s = 'hellopython.org'
print(s.title()) # Hellopython.Org
print(s.lower()) # hellopython.org
print(s.upper()) # HELLOPYTHON.ORG
十一、删除空白
1、strip() :删除字符串前后的空白
2、lstrip() :删除字符串前面的空白
3、rstrip() :删除字符串后面的空白
s = ' hellopython.org '
# 波浪线"~"人为添加,只为显示空格有无
print(s.strip()) # ~hellopython.org~
print(s.lstrip()) # ~hellopython.org ~
print(s.rstrip()) # ~ hellopython.org~
十二、查找、替换相关方法
1、startswitch() :判断字符串是否以指定子串开头
2、endswitch() :判断字符串是否以指定子串结尾
3、find() :查找指定子串中的出现位置,如果没有找到则返回-1
4、index() :查找指定子串中的出现位置,如果没有找到则引发ValueError错误
5、replace() :使用指定字串替换字符串中的目标子串
6、translate() :使用指定的翻译映射表对字符串进行替换
s = 'hellopython.org'
print(s.find('py')) # 5
print(s.find('pyaaa')) # -1
十三、分割、连接
1、split() :将字符串按指定分割符分割成多个短语
2、join() :将多个短语连缀成字符串
s = 'hellopython.org.py'
print(s.split('.')) # ['hellopython','org','py']
print('='.join(s.split('.'))) # hellopython=org=py
十四、dir() 查找
可通过快捷键 windows+R 并输入 cmd 进入命令提示符
输入 python 并回车 -> 输入 dir(str) 并回车
一、赋值运算符
1、赋值运算符是 “=”
2、作用:将等号右边的值“装入”左边的变量中
二、算术运算符
算术运算符 | 说明 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
// | 整除 |
% | 求余 |
** | 乘方 |
# 求余结果的正负号始终与除数保持一致
mod = 23 % 7
print(mod) # 2
mod = -23 % 7
print(mod) # 5
mod = 23 % -7
print(mod) # -5
mod = -23 % -7
print(mod) # -2
如果要实现更复杂的数学运算,可导入 math 模块
import math
print(math.sin(math.pi / 2)) # 1.0
查找 math 模块的函数
① 快捷键 windows+R 并输入 cmd 进入命令提示符
② 输入 python -> import math -> dir(math)
三、扩展后的赋值运算符
赋值运算符 | 说明 |
---|---|
+= | x += y 对应于 x = x + y |
-= | x -= y 对应于 x = x - y |
*= | x *= y 对应于 x = x * y |
/= | x /= y 对应于 x = x / y |
//= | x //= y 对应于 x = x // y |
%= | x %= y 对应于 x = x % y |
**= | x **= y 对应于 x = x ** y |
四、索引运算符
s = 'hellopython.org'
#根据下标访问
print(s[4]) # 0
# 指定开始、结束
# 前端包含,后端不包含
print(s[2: 4]) # ll
# 指定开始、结束、间隔(步长)
# 前端包含,后端不包含
print(s[2: 6: 2]) #lo
索引运算符对所有序列(字符串、字节串、列表、元组)都支持
五、比较运算符
比较运算符 | 说明 |
---|---|
>,>= | 大于,大于或等于 |
<,<= | 小于,小于或等于 |
== | 等于 |
=! | 不等于 |
is / is not | 判断两个变量引用的对象是否相同/不同,如果相同/不同则返回True,否则返回False |
s1 = '111'
s2 = str(111)
print(s1 is s2) # False
print(s1 == s2) # True
六、逻辑运算符
逻辑运算符 | 说明 |
---|---|
and | 与,任一操作数中为False,结果为False |
or | 或,任一操作数中为True,结果为True |
not | 非,只需要一个操作数,如果操作数为True,返回False,反之返回True |
七、三目运算符
1、Pyhton使用 if表达式 代替三目运算符
2、语法:(True_statements) if (expressions) else (False_statements)
3、if 语句支持嵌套
age = int(input("请输入您的年龄: ")) # input 18
print("年龄大于25岁") if age > 25 else print("年龄小于25岁") # 年龄小于25岁
# 以上代码当input 25时与事实不符,改正为:
age = int(input("请输入您的年龄: ")) # input 25
print("年龄大于25岁") if age > 25 else print("年龄等于25岁") if age == 25 else print("年龄小于25岁") # 年龄等于25岁
4、Ture_statements可放置多条语句,有两种放置方式:
(1)多条语句以英文逗号隔开:每条语句都会执行,程序返回多条语句的返回值组合成元组
(2)多条语句以英文分号隔开:每条语句都会执行,程序只返回第一条语句的返回值
# 以英文逗号隔开
age = int(input("请输入您的年龄: "))
s = '年龄大于等于18岁','成年人' if age >= 18 else print("年龄小于18岁")
# input 17 # 年龄小于18岁
# input 19 # (年龄大于等于18岁,成年人)
#以英文分号隔开
age = int(input("请输入您的年龄: "))
s = '年龄大于等于18岁';'成年人' if age >= 18 else print("年龄小于18岁")
# input 17 # 年龄小于18岁
# input 19 # 年龄大于等于18岁
八、in 运算符
s = 'hellopython.org'
print('org' in s) # True
print('ork' in s) # False
一、简单计算器
# 要求:
# 1、用户输入两个数
# 2、程序第一行打印两个数的和,第二行打印两个数的差,第三行打印两个数的积
num1 = float(input("请输入第一个数:"))
num2 = float(input("请输入第二个数:"))
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
# 结果:
# input 请输入第一个数:2
# input 请输入第二个数:2.5
# 4.5
# -0.5
# 5.0
二、进制转换
# 要求:
# 1、用户随便输入一个整数
# 2、打印该整数的二进制,八进制,十六进制数
# 两种转换方式:
# ① 使用转换函数:bin(),oct(),hex()
# ② 字符串格式化
# ① 使用转换函数
num = int(input("请输入一个整数:")) # input 30
print("十六进制:", hex(num)) # 0x1e
print("八进制:", oct(num)) # 0o36
print("二进制:", bin(num)) # 0b111110
# ② 字符串格式化
num = int(input("请输入一个整数:")) # input 30
print("十六进制:%x" % num) # 0x1e
print("八进制:%o" % num)) # 0o36
# print("二进制:%b" % num)是错误的,二进制不能使用字符串格式化