python基础(一)

前言

这个主要是记录复习python的基础

一、python语法结构

语句块缩进

Python 代码块通过缩进对齐表达代码逻辑而不是使用大括号
缩进表达一个语句属于哪个代码块
缩进风格:4个空格:非常流行,范-罗萨姆支持的风格

缩进

向右缩进,按【Tab】键
向左缩进,先按【Shift】,再很快按【Tab】
多行代码的缩进,选中,按如上操作即可

注释(ctrl+/)

Python 和很多 UNIX 脚本类似,注释语句从 # 字符开始
注释可以在一行的任何地方开始,解释器会忽略掉该行 # 之后的所有内容

二、print输出语句

基础语法

print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
value:值,输出的内容,可以有多个,用’,‘号分隔。
sep:显示时用于分隔的符号,在’'中间自定义。
end:这一条语句结束时输出的内容,默认为\n换行符。
file:输出流,默认为sys.stdout直接显示在控制台窗口上,可以替换为文件,直接将数据输出到文件中。
flush:是否强制刷新缓存到输出流里

eg: 
>>> print('Hello World')
Hello World
# 可以用’+’连接两个字符串,但连接的类型要一样
>>> print('hello' + 'world') 
helloworld
>>> print('Hello' + 123)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> print('Hello' + '123')
Hello123
# 可以进行运算
>>> print(100 + 200)
300
>>> print(100*200-300/4)
19925.0
>>> print(100*(20+3))  # 括号可以正常使用
2300
# 打印两个字符串时,默认空格分开
>>> print('hello', '123')
hello 123
# sep修改连接符
>>> print('hello', '123', 'world',sep='...')
hello...123...world
# end  结束符,默认换行符
#!/usr/bin/python3
print('hello')
print('world')

/usr/bin/python3.10 /home/study/PycharmProjects/pythonProject1/hi.py 
hello
world

#!/usr/bin/python3
print('hello', end='777')
print('world', end='333')

/usr/bin/python3.10 /home/study/PycharmProjects/pythonProject1/hi.py 
hello777world333

三、input输入语句

input 接收用户从键盘输入的数据

基础语法

input(‘info’)
info:提示描述信息,可以描述这一个input语句需要输入什么内容。
ps:input获得的输入为字符串格式,不能直接用于数值运算,需要转换字符格式。

eg:
>>> input()
hello world
'hello world'
>>> input('请输入姓名:')
请输入姓名:zhangsan
'zhangsan'
# 可以将获得的值赋值给参数
>>> a=input('请输入姓名:')
请输入姓名:zhangsan
>>> print(a)
zhangsan
>>> b=input('请输入一个数字:')
请输入一个数字:5
>>> print(b+3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> print(int(b)+3)
8

四、变量

概念理解

变量相当于一个装数据的容器,里面的数据是可以变化的。
赋值格式 :
变量名 = 值
ps:变量在使用前必须赋值,只有赋值后的变量才会创建。
python中定义变量不用提前定义类型,赋值的时候使用什么类型,定义的变量就是什么类型。
变量名只能包含数字,字母和下划线_但不能以数字开头且私有变量最好一下划线开头,最好不使用内置关键字当变量名。

eg:
>>> a=1
>>> type(a)
<class 'int'>
>>> type(a)
<class 'str'>
>>> a=1.12
>>> type(a)
<class 'float'>

五、运算符

运算符分为算术运算符,比较运算符, 逻辑运算符。

算术运算符

完成基本算术运算使用的运算符,用来处理四则运算。

运算符描述案例
+1+1=2
-2-1=1
*2×3=6
/6/3=2
//取整数返回除法整数部分8//3=2
%取余返回除法余数部分8%3=2
**次方,乘方, 2**3=8
eg:
>>> 8/3
2.6666666666666665
>>> 8//3
2
>>> 8%3
2

比较运算符

运算符描述
==等于,看两个操作数是否相等,是返回True
!=不等于, 看两个操作数是否不相等, 是返回True
>大于,看左操作数是否大于右操作数,是返回True
<小于, 看左操作数是否小于右操作数,是返回True
>=大于等于,看左操作数是否大于等于右操作数,是返回True
<=小于等于,看左操作数是否小于等于右操作数,是返回True
eg:
# 比较运算符也可连续使用
>>> 5>3
True
>>> 2<3<5
True
>>> 2<3>5
False

逻辑运算符

运算符逻辑表达式描述
anda and b只有a和b都为True,才会返回True,a,b有一个False,就返回False
ora or b只要a和b有一个True,就返回True,a,b都为False才返回False
notnot aa为True返回False,a为False返回True
>>> 5 > 3 and 6 > 3 
True
>>> 5 > 3 and 6 < 3 
False
>>> 5 > 3 or 6 > 3 
True
>>> 5 > 3 or 2 > 3 
True
>>> 5 < 3 or 6 < 3 
False
>>> not 5 > 3
False
>>> not 5 <  3
True

六、 数据类型

数据类型分为数字类型,字符串类型,列表类型,元组类型, 字典类型,集合类型。这里只介绍数字类型,字符串类型,列表类型。

数字类型

数字类型分为:
int : 有符号整数型
bool : 布尔值(0,1)
float : 浮点型(小数型)

int

python中默认为十进制显示,加前坠表示为其他进制显示。
2进制数: 以0b或0B开头,只有0,1,2表示为10
8进制数 : 以0o或0O开头, 0-8,9表示为10
16进制 : 以0x或0X开头, 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f, 16表示为10

# 十进制11表示为11
>>> 11
11
# 二进制11表示为1011,计算方式为2**3+2**1+2**0=11,转换一下就是
2**3 2**2 2**1 2**0
 1    0    1    1
使用2的n次方相加的方式
>>> 0b1011
11
# 8进制11表示为0o13,计算方式为1*(8**1)+3=11,2进制类似但最后不足8的直接写
8**1 8**0
 1    3
使用8的n次方相加的方式
>>> 0o13
11
# 16进制1015表示为a,b,c,d,e,f。16进制11504表示为0x2cf0计算方式为
2*(16**3)+12*(16**2)+15*(16**1)+0*(16**0)=8192+3072+240+0=11504转换一下为
16**3 16**2 16**1 16**0
	2     12    15    0
	2     c     f     0
使用16的n次方相加的方式
>>> 0x2cf0
11504

在python中有直接转化进制的函数

# bin(),将10进制转换为2进制
>>> bin(100)
'0b1100100'
# oct(),将10进制转换为8进制 
>>> oct(100)
'0o144'
# hex(),将10进制转换为16进制
>>> hex(100)
'0x64'
# int(num.2/8/16)2/8/16进制转化为10进制
>>> int('10101101101', 2)
1389
>>> int('0o73247', 8)
30375
>>> int('0xa9c87', 16)
695431

bool

bool值只有两个1和0,其中1代表真(True), 0代表假(False),主要用于逻辑运算。

字符串

python中字符串定义为引号之间的字符集合,单引号和双引号作用相同,三引号(三个连续的单引号或双引号)可以用来包含特殊字符。
ps:字符串的引号必须成对出现
三引号可以保护用户输入格式(原样输出),但不能单双混用

eg:
print(
    '''
    zhangsan
    lisi
    
    wangwu
    '''
)

/usr/bin/python3.10 /home/study/PycharmProjects/pythonProject1/day1/test2.py 

    zhangsan
    lisi
    
    wangwu
# 双引号可以输出包含单个单引号内容
>>> print("hello nfx, I'm your baby~")
hello nfx, I'm your baby~
# 单引号也可包含双引号的内容
>>> print('lisa : "you are the best"')
lisa : "you are the best"
# 三引号可以解决符号冲突
>>> print("""hello "nfx", I'm your baby~""")
hello "nfx", I'm your baby~

字符串索引和切片

使用索引运算符 [ ] 和 切片运算符 [ : ] 可得到子字符串

字符串索引

字符串的下标从0开始,子字符串包含切片中的起始下标,但不包含结束下标。
eg:一个字符串变量str1=”hello world!“

    h    e    l    l    o         w    o    r    l    d    !
    0    1    2    3    4    5    6    7    8    9   10   11
   -12  -11  -10  -9   -8   -7   -6   -5   -4   -3   -2   -1

str1[n],n代表下标,可以直接提取字符串中的一个符号

eg
>>> print(str1[0])
h
>>> str1="hello world!"
>>> print(str1[2])
l
# 空格也算一个字符
>>> print(str1[5])
 
>>> print(str1[8])
r

想要直接获取最后一个字符串,可以用-1来直接获取最后一个字符,-1代表逆序第一个字符。

>>> print(str1[-1])
!
>>> print(str1[-4])
r
ps:顺序是从0开始,逆序从-1开始,注意下标,不要写错下标

也可以使用len函数直接获取字符串的长度(有多少个字符)然后得到结束下标

eg: 
>>> len(str1)
12
ps: len得到的是总字符数,是从1开始,要转换为对应下标,需要减1
字符串切片

语法格式:
字符串 [ 起始索引 : 终止索引 : 步长 ]
特点:含头去尾,能获取到起始索引位置上的元素,获取不到终止索引上的元素
通常只写头和尾,不写步长,步长默认为1

eg:
# 输出从第1个到第8个字符
>>> print(str1[0:8])
hello wo
# 输出从第1个到倒数第4个字符
>>> print(str1[0:-4])
hello wo
# 不写头尾,默认全部
>>> print(str1[:])
hello world!
# 步长为2,隔一个输出
>>> print(str1[::2])
hlowrd
# 步长为-1,逆序输出
>>> print(str1[::-1])
!dlrow olleh
#综合从第3个字符(包含)开始到倒数第1个字符(不包含),每隔2个输出
>>> print(str1[2:-1:2])
lowrd

ps: 逆序输出要反向指定范围,否则不能显示

# 从倒数第2个开始,到倒数第8个(不包含)结束,逆序输出
>>> print(str1[-2:-8:-1])
dlrow 
# 从倒数第2个开始,到倒数第8个(不包含)结束,逆序每隔一个输出
>>> print(str1[-2:-8:-2])
drw
# 从倒数第2个开始,到正数第3个(不包含)结束,逆序每隔一个输出
>>> print(str1[-2:2:-2])
drwo

字符串连接操作

使用+号将多个字符串拼接为一个字符串
使用*可以将一个字符串重复多次

eg: 
# 用+号将str1和str2拼接在一起
>>> str1="hello "
>>> str2="world"
>>> str1+str2
'hello world'

ps:拼接一样要相同数据类型

# 使用*号将str1打印5>>> str1="hello world"
>>> str1 * 5
'hello worldhello worldhello worldhello worldhello world'

可以使用in和not in判断字符是否处于变量的范围之内,使用in,True为在,False为不在。使用not in ,True为不在,False为在。

eg:
>>> 'a' in str1
False
>>> 'e' in str1
True
>>> 'word' in str1
False
>>> 'world' in str1
True
>>> 'a' not in str1
True
>>> 'e' not in str1
False

列表

List(列表) 是 Python 中使用最频繁的数据类型,在其他语言中通常叫做数组
列表专门用于储存一串信息,能保存任意数量,任意类型的python对象
列表使用[ ]定义,数据之间用’,'分隔,列表中的项目可以改变且列表的索引下标也是从0开始。

列表的拼接和查看修改

eg:
>>> alist=['zhangsan', 'lisi', 'wangwu']
>>> alist
['zhangsan', 'lisi', 'wangwu']
>>> type(alist)
<class 'list'>

ps:列表也可以拼接,且列表的拼接也需要相同类型,即列表必须拼接列表。
列表的拼接和字符串一样,只是输出在一起,但是列表内容不会改变

>>> blist=['xiaohong', 'limei', 'hanleilei']
>>> alist + blist
['zhangsan', 'lisi', 'wangwu', 'xiaohong', 'limei', 'hanleilei']
>>> alist + 'lilei'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list

查看列表数据和查看字符串也一样,alist[n],n代表下标

eg:
>>> alist[1]
'lisi'
>>> alist[-1]
'wangwu'
>>> alist[::2]
['zhangsan', 'wangwu']
>>> alist[::-1]
['wangwu', 'lisi', 'zhangsan']

修改列表数据使用 列表索引=新值的方式,相当于将新的值覆盖原有的值

>>> alist[1]='nijika'
>>> alist[1]
'nijika'
>>> alist
['zhangsan', 'nijika', 'wangwu']

列表的操作

使用in或not in判断成员关系
使用in或not in只能判断单个元素,不能判断多个元素,且必须是一个完整的元素

eg:
>>> 'n' in alist
False
>>> 'nijika' in alist
True
>>> 'nijika' not in alist
False

列表的添加和删除
列表使用append函数添加数据,使用insert在指定位置添加一个元素,使用remove删除第一个符合的元素,使用pop删除并返回指定位置元素,使用clear清空,使用del删除。

>>> alist=[1,2,3,4]
>>> alist.append(5)
>>> alist
[1, 2, 3, 4, 5]
>>> alist.insert(2,6)
>>> alist
[1, 2, 6, 3, 4, 5]
# insert位置是在指定第几个元素后面,与下标不同,不用-1
>>> alist.insert(2,3)
>>> alist
[1, 2, 3, 6, 3, 4, 5]
>>> alist.remove(3)
>>> alist
[1, 2, 6, 3, 4, 5]
# 使用pop删除指定位置是使用的下标定位,所以删除下标为2的元素为删除第3个元素
>>> a=alist.pop(2)
>>> a
6
>>> alist
[1, 2, 3, 4, 5]
# 清空数组
>>> alist.clear()
>>> alist
[]
# 使用del删除数组后无法再使用数组,显示未not defiend未定义
>>> del alist
>>> alist
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'alist' is not defined. Did you mean: 'blist'?

总结

记录复习python的过程

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值