【李刚-21天通关Python】第一章:Python入门与字符串

【李刚-21天通关Python】第一章:Python入门与字符串

  • 第一章:Python入门与字符串
    • 数据类型
    • 字符串
    • 运算符
    • 实操:简易计算器 & 进制转换


章节分篇链接:
【李刚-21天通关Python-01】之 数据类型
【李刚-21天通关Python-02】之 字符串
【李刚-21天通关Python-03】之 运算符
【李刚-21天通关Python-04】之 实操:简单计算器&进制转换


第一章:Python入门与字符串

数据类型

一、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) 并回车
【李刚-21天通关Python】第一章:Python入门与字符串_第1张图片


运算符

一、赋值运算符
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)
【李刚-21天通关Python】第一章:Python入门与字符串_第2张图片

三、扩展后的赋值运算符

赋值运算符 说明
+= 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)

  • expressions:待判断的表达式
  • True_statements:若expression判断为True,则执行此语句
  • False_statements:若expression判断为False,则执行此语句

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)是错误的,二进制不能使用字符串格式化

你可能感兴趣的:(【李刚-21天通关Python】第一章:Python入门与字符串)