【李刚-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)  # python10101s4 = "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\npyhthonsr2 = 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))  # <class 'bytes'>

(2)调用 bytes() 函数将字符串按指定字符集转成字节串,默认使用UTF-8字符集

b2 = bytes('我爱你', 'UTF-8')
print(b2)  # b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'
print(type(b2))  # <class 'bytes'>

(3)调用字符串本身的 encode() 方法将字符串按指定字符集转成字节串,默认使用UTF-8字符集

b3 = '我爱你'.encode()
print(b3)  # b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'
print(type(b3))  # <class 'bytes'>

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')  # 我爱pythonnumber = 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)  # 2mod = -23 % 7
print(mod)  # 5mod = 23 % -7
print(mod)  # -5mod  = -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)

  • 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入门与字符串相关推荐

  1. 【李刚-21天通关Python】第四章:函数

    [李刚-21天通关Python]第四章:函数 第四章:函数 函数入门与定义函数 多返回值函数与递归函数 关键字参数与参数默认值 参数收集和逆向参数收集 变量作用域 局部函数 实操:定义计算N的阶乘的函 ...

  2. 【李刚-21天通关Python-03】之 运算符

    [李刚-21天通关Python-03]之 运算符 一.赋值运算符 1.赋值运算符是 "=" 2.作用:将等号右边的值"装入"左边的变量中 二.算术运算符 算术运 ...

  3. 【李刚-21天通关Python-27】之 案例实操:函数装饰器应用

    [李刚-21天通关Python-27]之 案例实操:函数装饰器应用 一.函数装饰器的广泛应用 @staticmethod 和 @classmethod 的本质就是函数装饰器 staticmethod ...

  4. 【李刚-21天通关Python-23】之 定义类

    [李刚-21天通关Python-23]之 定义类 一.类和对象 两个重要概念:类(class)和对象(object,也被称为实例,instance) 类是某一批对象的抽象,可以将类理解成某种概念 对象 ...

  5. 趣学PYTHON 第一章python不是大蟒蛇

    趣学PYTHON 第一章python不是大蟒蛇 把我自己的学习记录在这里,留下一片回忆. Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:3 ...

  6. python导入excel模块_Excel到python第一章python利用pandas和numpy模块导入数据

    原博文 2019-08-29 21:18 − import numpy as np import pandas as pd # 导入数据 # 读取csv数据 df = pd.read_csv(open ...

  7. 第一章 python筑基

    python 第一章 python基础 print函数:输出变量或者对象的值.接下来我们会经常用到,再次不做赘述. 如果对于该函数不了解的,可以通过help(print)和help(print())查 ...

  8. 流畅的python读书笔记-第一章Python 数据模型

    第一章 python数据类型 1 隐式方法 利用collections.namedtuple 快速生成类 import collectionsCard = collections.namedtuple ...

  9. 萌新向Python数据分析及数据挖掘 第一章 Python基础 第三节 列表简介 第四节 操作列表...

    第一章 Python基础 第三节 列表简介 列表是是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中的元素包括在方括号([])中,每个元素之间用逗号分割.列表是可变的数据类型, ...

最新文章

  1. 家庭背景音乐的发展趋势
  2. HDU3388(二分+容斥原理)
  3. uniapp ---- 树组件
  4. 【小白的刷题之路】字符统计
  5. oracle的sql口令,Oracle数据库的SYS口令是什么?
  6. idea Spring-boot 项目debug启动过慢 spring debug启动过慢解决办法:已解决
  7. MySQL 6.子查询
  8. 关于Mac电脑更新IP地址的解决方法!
  9. html+css+js实现小游戏flybird(完整版)
  10. vivo和小米鸿蒙系统哪个好,vivo和华为还有小米,哪个系统流畅度更好?
  11. 2017年11月软考全国各省市报名时间及报名网址(动态更新)
  12. 详解分级基金(杠杆基金)【精华】 【转】
  13. 10 大开源免费的项目管理软件推荐
  14. IOS学习笔记-加速度传感器(重力感应)-UIAccelerometer
  15. java 匹配任意字符_正则表达式匹配任意字符(包括换行符)
  16. Android 4.2 Wifi Display核心分析 (一)
  17. 腾讯云·部署Eclipse Che(云原生IDE)(CSDN云通用)
  18. VS2019初步使用
  19. windows下用GHOST手动备份系统图解
  20. 【面试记录】长安汽车一面

热门文章

  1. scrapy案例:爬取京东笔记本数据
  2. 程序员转正述职报告_程序员转正工作总结(4篇),转正工作总结
  3. 《三国演义》中死不瞑目的十大风流人物
  4. js前端处理过滤特殊字符以及输入法特殊表情符号emoji的正则方法,解决数据库报错问题。
  5. 脚手架创建遇到报错:Error: command failed: pnpm install --reporter silent --shamefully-hoist
  6. 又一个奇葩要求,看看Python是如何将“中文”转“拼音”的?
  7. 自定义类 无极限树形结构菜单(繁杂版)
  8. Distributed System 基础(四)隐私性(Privacy)
  9. python文件处理——pdf解密
  10. 串口控制小车电机转动+蓝牙长按控制