文章目录
- 一、输入函数Print
- 二、注释
- 三、输出函数input
- 四、变量
- 4.1 变量的赋值
- 4.2 变量命名规则
- 4.3 内部保留关键字
- 4.4 同时为多个变量赋值
- 五、标准数据类型
- 5.1 整数型int
- 5.2 浮点型float
- 5.2.1 数值的计算
- 5.2.2 math科学计算库
- 5.2.3 python中的比较运算符
- 5.2.4 逻辑运算符
- 5.3 字符串
- 5.3.1 字符串的拼接和重复
- 5.3.2 重点:字符串的索引和切片
- 5.3.3 转义字符
- 5.3.4 字符串方法
- 5.3.4.1 find查找
- 5.3.4.2 count计数
- 5.3.4.3 replace替换
- 5.3.4.4 split分割
- 5.3.4.5 splitlines()
- 5.3.5 字符串的格式化
- format
- 5.3.6 字符串其他方法
- 5.3.6.1 lower
- 5.3.6.2 upper
- 5.3.6.3 strip
- 5.3.6.4 join
- 5.3.7 判断字符串内的元素类型
一、输入函数Print
print是打印的意思,在这里指的是向屏幕上输出指定的文字
print 可以打印单个值,也可以打印多个值,还可以设置以什么字符作为多个值之间的分隔.
打印一个值, 打印多个值, sep设置中间分隔符, 默认为空格, end设置以什么结尾默认换行
print('hello','world',sep='===')
>>hello===world
print('Captain',end='....')
print('Superman')
print('Batman')
>>Captain....Superman
Batman
二、注释
分为单行注释和多行注释
‘#‘ 单行注释
“”"
多行注释
“”"
三、输出函数input
input 获取一个用户输入的字符串, 查看文档, 有一个提示的参数
input 获取的是一个字符串类型
若想将输入结果进行计算就要用到一个函数:int() ( 将其他数据转化为整数)
#任意使用input输入a,b,c 3个整数,计算a+b-c的结果, 并打印出来
a=int(input('请输入a的值:'))
b=int(input('请输入b的值:'))
c=int(input('请输入c的值:'))
print(a+b-c)
四、变量
- python是动态数据类型
- python中的变量不需要声明, 直接赋值就可以使用
4.1 变量的赋值
- 变量在使用之前必须进行赋值
- Python会根据你赋给的值自动判断变量的数据类型
- 其实变量并没有什么类型
- 变量只是指向了一个内存地址, 内存地址中储存了我们的数据, 这个数据是具有数据类型的
- 变量可以重复赋值, 后面的值会覆盖前边的值
- 改变变量的值, 其实就是改变了变量指向的内存地址!
4.2 变量命名规则
- 变量名的长度不受限制,但其中的字符必须是字母、数字、或者下划线,而不能使用空格、连字符、标点符号、引号或其他字符。
- 变量名的第一个字符不能是数字,而必须是字母或下划线。
- Python区分大小写。
- 不能将Python关键字用作变量名。
4.3 内部保留关键字
import:
把一些包导入
import keyword #查看都有哪些关键字
print(keyword.kwlist)
>>['False', 'None', 'True', 'and', 'as', 'assert', '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']
4.4 同时为多个变量赋值
a,b,c=3,2,5
print(a,b,c)
>>3 2 5
# 交换两个变量的值
a,b=b,a#快速方法
#temp作为中间变量
temp = b
b = a
a = temp
五、标准数据类型
python中常用的数据类型有:
- 数字(Numbers)整数int, 浮点数float, 复数complex
- 布尔(Booleans)函数为bool, 含有的值为True和False
- 字符串(Strings)函数为str , Uniconde字符序列, 在引号内包含
- len()可以计算可遍历数据类型长度
- 列表(list)有序的值的序列
- 元组(tuple)有序的值的序列且不可改变
- 字典(Dictionaries)函数为dict, 无序的键值对的组合
- 集合(Sets)函数为set, 无序的不含重复值的序列
5.1 整数型int
Python的整数长度没有限制,通常是连续分配的内存空间。
tapy() #查看当前数据的类型
a = 256
type(a)
>int
5.2 浮点型float
浮点型就是我们常说的小数型
a = 1.0
type(a)
>float
#也可以使用科学计数法进行表示
a = 1.22e2
a
>122.0
5.2.1 数值的计算
5.2.2 math科学计算库
# 计算
import math
math.log10(math.sqrt(5) + math.pow(17,2))
>2.464245158943211
5.2.3 python中的比较运算符
5.2.4 逻辑运算符
与 and 代表符号两边如果都为真,则结果为真
或 or 两边如果有一边以上为真,则结果为真
非 not 颠倒真和假,如果原来是真,就变成真,如果原来是假,就变成假
5.3 字符串
字符串是指以"“双引号, 或者’'单引号括起来的任意文本, 例如"abaa”, '1232’凡是在引号中的都是字符串
转义符号
1.将有特殊含义的符号,转化成没有特殊含义的
2.将没有特殊含义的符号转换成有特殊含义的
5.3.1 字符串的拼接和重复
字符串 使用 + 相当于拼接两个字符串
字符串 * n , 相当于把字符串重复n次
"ABC" + "abc"
>>'ABCabc'
print("-"*50)
>>--------------------------------------------------
5.3.2 重点:字符串的索引和切片
字符串也是一个可迭代对象, 也就是说每一个字符串实际上都有一个对应的索引值。
索引值从零开始计算,每一个字符对应一个唯一的索引值。
索引值也可以从后往前算,后面从负一开始计算。
test = "零一二三四五六七八九"
test[0]
>>'零'
有的时候我不仅仅想取出字符串的其中一个字符,想要取出其中一部分,这时候应该怎么做呢?
字符串切片的标准语法:
string[开始位置:终止位置:步长和方向]
注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
这里以字符串为例进行讲解,实际上列表也会具有相同的方法.
test = "零一二三四五六七八九"
test[3:5]
>>'三四'
test[2:6:2]
>>'二四'
5.3.3 转义字符
转义字符有很多,这里介绍几个常见的
- \n 表示换行
- \t 表示制表符
- \ 转义反斜杠
- " 把引号转义成普通字符串
转义字符如可以把本身没有含义的普通字符转换成特殊功能字符,也可以把本身有特殊功能的字符转换成普通字符。
注: python中也可以用r’'这种语法创建原生字符串,原生字符串中的字符串不进行转义
print(r'\'ABC\nbb')
>>\'ABC\nbb
5.3.4 字符串方法
常用的字符串处理方法:
5.3.4.1 find查找
检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
s_find = "abcdefgabc"
s_find.find('a')
>>0
s_find.find('z') #-1表示没找到
>>-1
5.3.4.2 count计数
返回 str在start和end之间 在 mystr里面出现的次数
mystr.count(str, start=0, end=len(mystr))
s_test = """御剑乘风来,除魔天地间,
有酒乐逍遥,无酒我亦颠,
一饮尽江河,再饮吞日月,
千杯醉不倒,唯我酒剑仙。"""
s_test.count('剑')
>>2
5.3.4.3 replace替换
把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
mystr.replace(str1, str2, mystr.count(str1))
s10 = """桃花坞里桃花庵,桃花庵里桃花仙;桃花仙人种桃树,又摘桃花换酒钱。
酒醒只在花前坐,酒醉还来花下眠;半醒半醉日复日,花落花开年复年。
但愿老死花酒间,不愿鞠躬车马前;车尘马足贵者趣,酒盏花枝贫者缘。
若将富贵比贫贱,一在平地一在天;若将贫贱比车马,他得驱驰我得闲。
世人笑我太疯癫,我笑世人看不穿;不见五陵豪杰墓,无花无酒锄作田。"""
#把桃花诗中的标点符号都换成英文标点符号
s11 = s10.replace(',',',')
s12 = s11.replace('。','.')
s13 = s12.replace(';',';')
print(s13)
#也可以这样
s18=s10.replace(',',',').replace('。','.').replace(';',';')
print(s18)
s18=s10.replace(',',',').replace('。','.').replace(';',';')
print(s18)
>>桃花坞里桃花庵,桃花庵里桃花仙;桃花仙人种桃树,又摘桃花换酒钱.
酒醒只在花前坐,酒醉还来花下眠;半醒半醉日复日,花落花开年复年.
但愿老死花酒间,不愿鞠躬车马前;车尘马足贵者趣,酒盏花枝贫者缘.
若将富贵比贫贱,一在平地一在天;若将贫贱比车马,他得驱驰我得闲.
世人笑我太疯癫,我笑世人看不穿;不见五陵豪杰墓,无花无酒锄作田.
5.3.4.4 split分割
以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
mystr.split(str=" ", 2)
s11 = 'Forget the memories, continue to be life, miss, just pass by.'
s11.split(',')
>>['Forget the memories', ' continue to be life', ' miss', ' just pass by.']
5.3.4.5 splitlines()
按照行分隔,返回一个包含各行作为元素的列表
mystr.splitlines() 换行之后要想保留换行符,则加上参数Ture,mystr.splitlines(True)
split_test = """When you are old and grey and full of sleep,
And nodding by the fire,take down this book,
And slowly read,and dream of the soft look """
split_test.splitlines()
>>['When you are old and grey and full of sleep,',
'And nodding by the fire,take down this book,',
'And slowly read,and dream of the soft look ']
split_test.splitlines(True)
>> ['When you are old and grey and full of sleep,\n',
'And nodding by the fire,take down this book,\n',
'And slowly read,and dream of the soft look \n']
5.3.5 字符串的格式化
format
例如要爬取网站:www.xxx.com,两边部分是固定的,只有xxx会根据不同网址进行改变.这时就要用到格式化
#用位置进行填充
url = "www.{}.com" #大括号代表一个占位符
url.format('cda') #format是格式化的意思
>>'www.cda.com'
url = '{}.{}.com'
url.format('map','baidu')
>>'map.baidu.com'
#利用数字进行填充
'{1}.{2}.{0}'.format('a','b','c')
>>'b.c.a'
#给每一个格子起名,然后按照名称进行填充
'{二级域名}.{主域名}.{后缀}'.format(主域名='qq',二级域名='image',后缀='com')
>>'image.qq.com'
5.3.6 字符串其他方法
5.3.6.1 lower
转换 mystr 中所有大写字符为小写
mystr.lower()
5.3.6.2 upper
转换 mystr 中的小写字母为大写
mystr.upper()
5.3.6.3 strip
删除mystr字符串两端的空白字符
5.3.6.4 join
mystr 中每个字符后面插入str,构造出一个新的字符串
mystr.join(str)
5.3.7 判断字符串内的元素类型
isalpha: 如果 mystr 所有字符都是字母 则返回 True,否则返回 False
mystr.isalpha()
isdigit: 如果 mystr 只包含数字则返回 True 否则返回 False.
mystr.isdigit()
isalnum: 如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
mystr.isalnum()
isspace: 如果 mystr 中只包含空格,则返回 True,否则返回 False.
mystr.isspace()