输入输出
先从输出开始吧,编程语言的学习好像都是从打印Hello World开始的
print()会依次打印每个字符串,遇到逗号“,”会输出一个空格
print()函数输出后默认会换行,print("", end="") 去除换行
-
print(
'Hello world')
-
print(
'a',
'b',
'c')
-
-
输入:通过input() 可以达到这个效果。
-
name=input()
-
hello
-
print(name)
执行效果:
格式化输出:
换行与缩进
python的语法其实总结一下就两条:
(1)一条代码作为一行:比如一个赋值、一个运算、一个请求、一条打印等。(多行代码写在一行时,中间用;间隔)
(2)对齐和缩进:同一级别的代码只需要保持对齐即可,对于不同级别的代码进行缩进,这样就能区分开代码执行的逻辑。
第二点的话,对于有过其他编程语言经验的人来说,可能一开始会有点不习惯,用惯了其他IDE工具的一键排版等功能,代码编写的比较随意,在python里面就不行,对代码编写规范要求比较高。
关于缩进风格:
标准Python风格是每个缩进级别是使用4个空格,永远不要使用Tab制表符!
因为不同编辑器,处理制表符的方式不同,有些会把它当成一个制表符,有的会将其看成是4个或4个以上的空格,因而会产生源代码中制表符和空格的使用不一的后果,违反了Python的缩进规则。当然可以设置编辑器在打入Tab键时将其替换成相应个数的空格。
Python的代码原则是代码只包含空格!
注释
单行注释:使用#
多行注释:使用三个单引号(''')或三个双引号(""")。
-
实例:
-
#!/usr/bin/python
-
# -*- coding: UTF-8 -*-
-
# 文件名:test.py
-
-
-
-
-
'''
-
这是多行注释,使用单引号。
-
这是多行注释,使用单引号。
-
这是多行注释,使用单引号。
-
'''
-
-
-
"""
-
这是多行注释,使用双引号。
-
这是多行注释,使用双引号。
-
这是多行注释,使用双引号。
-
"""
python中有一些保留字,在定义变量的时候不能使用,这个跟其他语言类似
标识符
标识符就是程序员自己命名的变量名。名字需要有见名知义的效果。
标识符有自己的规定:
1、标识符中可以有字母、数字或下划线,区分大小写。但是不能以数字开头,如:2a = 1 2a这个变量名不规范,会报错。
2、标识符不能是python中的关键字和保留字,也不建议使用python的内置函数的名字,会导致内置函数被覆盖。
注意事项:
以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 进行导入。
以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
1.在定义变量时,为了保证代码格式,=的左右应该各保留一个空格
2.下划线命名法和大驼峰命名法:
所有字母都小写,单词之间用_分割:
max_length、min_length、hello_world
首字母大写,每个单词开头字母大写,其余小写
MaxLength、MinLength、HelloWorld
命名规范主要是让代码变得更清晰、方便理解和观察
int float bool str list dict tuple
本文不详细描述python的一些数据类型的基本用法,只记录一些比较特殊的容易被忽略的点!!!
python里面常见的数据类型有:int float bool str list dict tuple,下面简单介绍一下后面几种。
字符串、列表、元组、字典比较
str
支持切片、split分割、strip(去掉首尾某个指定字符,默认去掉首尾空格)
-
index
找到子字符串返回下标 没找到会报错
-
find
找到子字符串返回下标 没找到返回-1
-
count
统计子字符串出现的次数
-
replace
进行字符串的替换
-
split
对字符串进行分割
-
join
进行字符串的拼接
-
a=
' abcde fghijaaa'
-
print(a.strip())
#去除首尾空格,输出:abcde fghijaaa
-
print(a.strip('a'))
#去除首尾字母a,输出:abcde fghij
list:支持增删改
-
pop
删除列表末尾的数据
-
remove
根据指定的数值删除数据
-
del
根据下标删除
-
append
在列表的末尾添加数据
-
extend
列表末尾一次性追加另一个序列中的多个值,该函数没有返回值
insert 在指定的位置插入数据
tuple:原则上数据不可变
1、元组只有1个元素时,要在元素后面加一个逗号,要不然变量类型不是元组:
-
输入:
-
print(
type((1)))
-
print(
type((
'a')))
-
print(
type((1,)))
-
print(
type((1,2)))
-
对应的输出:
-
<class
'int'>
-
<class
'str'>
-
<class
'tuple'>
-
<class
'tuple'>
-
-
2、元组里面的内容不支持整体变更,但是支持局部变更
-
a = (1,'abcd',[1,2,3],{'k1':'1','k2':'2'})
-
a[
2][
0]=3
-
a[
3][
'k1']='sdfsd'
-
a[
3][
'k5']='null'
-
print(a)
-
输出结果如下:
-
(1, 'abcd', [3, 2, 3], {'k1': 'sdfsd', 'k2': '2', 'k5': 'null'})
-
如果使用a[2]=0 这样就会报错:
-
TypeError: 'tuple' object does not support item assignment
dist:支持增删改
字典使用pop函数时,传参是key,且为必传,而元组使用pop函数时,传参为索引,默认为-1,即取出索引最后一个的值,该函数有返回值。
-
以 key:
value 对组成的
-
1 key不可变的数据类型
-
value可以是任何数据类型
-
2 key是不可重复的
-
针对字典的相关操作:
-
keys 获取字典的所有的key值
-
values 获取字典的所有的
value值
-
items 获取字典的key-
value对 [(key,
value),(key,
value)]
-
len 获取字典 列表 字符串 元组 的长度
-
del 字典[key]
-
clear() 清空字典
切片的应用场景
利用python解决问题的过程中,经常会遇到从某个对象中抽取部分值的情况。“切片”操作正好可以实现这一操作。
索引包括正索引和负索引两部分,如下图所示,以list对象a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例:
一个完整的切片表达式:object[start_index:end_index:step]
step:正负数均可,其绝对值大小决定了切取数据时的‘‘步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。当step省略时,默认为1,即从左往右以步长1取值。
start_index:表示起始索引(包含该索引对应值);该参数省略时,表示从对象“端点”开始取值,至于是从“起点”还是从“终点”开始,则由step参数的正负决定,step为正从“起点”开始,为负从“终点”开始。
end_index:表示终止索引(不包含该索引对应值,即类似于数学里面的开区间);该参数省略时,表示一直取到数据“端点”,至于是到“起点”还是到“终点”,同样由step参数的正负决定,step为正时直到“终点”,为负时直到“起点”。
实例代码:
-
a=
'0123456789'
-
print(a[1:3])
#输出12
-
print(a[1:7:2])
#输出135
-
print(a[:])
#输出0123456789
-
print(a[3:6])
#输出345
-
print(a[-1::-1])
#输出9876543210
-
print(a[::-1])
#9876543210
通过以上代码演示可以发现,要实现字符串的反转,使用a[-1::-1] 或者 a[::-1] 均可实现。
注意:
使用切片操作时,使用了:的话,返回的对象格式与源对象格式一致
-
b = [1,2,3,4,5,6,7]
-
print(b[5:6])
# 使用了:,返回的是[6]
-
print(b[5])
#返回 6
切片常用操作
1、取奇数、偶数位置的数据
-
a=
'0123456789'
-
print(a[::2])
# 获取偶数位置数据
-
print(a[1::2])
# 获取奇数位置数据
2、字符串反转
-
a=
'0123456789'
-
print(a[-1::-1])
#输出9876543210
-
print(a[::-1])
#9876543210
字符串分割
split() 通过指定分隔符对字符串进行切片
split() 方法语法:str.split(str="", num=-1),返回的是一个列表格式的数据
参数
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分割所有。
用法演示:
-
s1=
'helloworld'
-
s2=
'hello world'
-
print(s1.
split(
'l'))
-
print(s1.
split(
'l',
2))
-
print(s1.
split(
'g'))
-
print(s2.
split(
' '))
-
输出:
-
[
'he',
'',
'owor',
'd']
-
[
'he',
'',
'oworld']
-
[
'helloworld']
-
[
'hello',
'world']
特殊用法:
1、object.splitlines():按"行"进行字符串分割
2、利用re模块进行多字符串分割
用法:
先导入re模块:import re
之后:re.split('分割符1|分割符2',objects) --> 不同的分割符用 '|'进行间隔(分割符需要进行'\'的转义操作),然后objects为需要分割的字符串对象。
-
e =
"277169949@qq.com"
-
print(re.
split(
'@|\.',e))
-
[
'277169949',
'qq',
'com']
往期精彩内容推荐
Fiddler Everywhere之AutoResponder功能详解
转载:https://blog.csdn.net/liboshi123/article/details/109302722