基础语法

1、变量的定义

指在程序运行过程中值可以发生改变的量。

1.1 字符串型变量
test='hello world'
print(test)
hello world
1.2 整型变量
Test=123
print(Test)
123
1.3 浮点型变量
test=10.5
print(test)
10.5

同时定义多个变量 变量1,变量2,…,变量n=值1,值2,…,值n 例如:name,age=‘张三’,18
🤔🤔修改多个变量的值 x,y=5,10 x,y=y,x x,y分别为多少?

x,y=5,10
x,y=y,x
print(x,y)
10 5

2、数据类型

2.1 Number(数字)

int(整型):整型数字包括正整数、0和负整数,不带小数点,无大小限制
float(浮点型):浮点型数字使用C语言中的double类型实现,可以用来表示实数
complex(复数类型):复数由实部和虚部组成,每一部分都是一个浮点数。如:a+bj或a+bJ 其中,a和b是两个数字,j或J是虚部的后缀,即a是实部、b是虚部
在生成复数时,使用complex([real[,imag]]

complex(3)
(3+0j)
complex(4,-3.1)
(4-3.1j)
2.2 String(字符串)

Python语言中只有用于保存字符串的String类型,而没有用于保存单个字符的数据类型。
Python中的字符串可以写在一对单引号中,也可以写在一对双引号或一对三双引号中。

s1,s2='Hello World!',"你好,世界!",
print(s1,s2)
Hello World! 你好,世界!

字符串转整数:int函数
第一个参数是要转换为整数的字符串(要求必须是一个整数字符串,否则会报错)
第二个参数是字符串中整数的数制(不指定则默认为10)

int('10',2)
2
int('10')
10
int('10',2) //10转成二进制
2
int('10+1') //报错

字符串转成浮点数:float函数
只有一个参数,即要转换为浮点数的字符串(要求必须是一个整数或浮点数字符串)

float('10')
10.0
float('10.1')
10.1
float('10.1+1') //报错
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    float('10.1+1')
ValueError: could not convert string to float: '10.1+1'

子串截取
利用下标“[]”可以从字符串中截取一个子串,其语法格式为:s[beg:end]
其中,s为原始字符串,beg是要截取子串在s中的起始下标,end是要截取子串在s中的结束下标。

s='hello,world'
print(s[1:5])
ello

下标索引方式
1、从前往后索引:第1个字符的下标为0,其他字符的下标是前一字符的下标增1
2、从后往前索引:从后向前索引方式中,最后一个字符的下标为-1,其他字符的下标是后一字符的下标减1

s='helloworld'
print(s[1:5])
ello
print(s[-5:-1])
worl

截取单一字符 语法格式:s[idx]

s='你好学习课程很快乐'
print(s[2])

使用下标“[]”可以访问字符串中的元素,但不能修改。

2.3 List(列表)

列表元素索引
列表中元素的索引方式与字符串中元素的索引方式完全相同,也支持从前向后索引和从后向前索引两种方式,语法格式:ls[beg:end]

ls=[1, 2.5, 'test', 3+4j, True, [3,1.63], 5.3]
print(ls[1:3])
[2.5, 'test']
print(ls[-5:-1])
['test', (3+4j), True, [3, 1.63]]

访问单个元素 语法格式:ls[idx]

ls[2]
'test'
ls[-1]
5.3

元素修改
将列表ls中第3个元素的值改为111

ls[2]=111
ls[2]
111

将列表ls中第2至4个元素替换为[‘python’,55]中的元素

ls[1:4]=['python',55]
ls[1:4]
['python', 55, True]

将列表ls中前两个元素替换为空列表[],即将前两个元素删除

ls[0:2]=[]
ls
[55, True, [3, 1.63], 5.3]
2.4 Tupe(元组)

Tuple(元组)与列表类似,可以包含多个元素,且元素类型可以不相同,书写时每两个元素之间也是用逗号分隔;
与列表的不同之处在于:元组的所有元素都写在一对小括号“()”中,且元组中的元素不能修改;
元组元素索引

s=(1, 2.5, 'test', 3+4j, True, [3,1.63], 5.3)
s[1:3]
(2.5, 'test')
s[-3:-1]
(True, [3, 1.63])

单一元素访问 语法格式:s[idx]

s[1]
2.5
s[-1]
5.3
2.5 Set(集合)

与元组和列表类似,Set(集合)中同样可以包含多个不同类型的元素,但集合中的各元素无序、不允许有相同元素且元素必须是可哈希(hashable)的对象。
可哈希对象是指拥有__hash__(self)内置函数的对象。列表、集合和字典类型的数据不是可哈希对象,所以它们不能作为集合中的元素。
创建集合
集合中的所有元素都写在一对大括号“{}”中,各元素之间用逗号分隔。创建集合时,既可以使用{},也可以使用set函数。set函数的语法格式如下:set([iterable]);其中,iterable是一个可选参数,表示一个可迭代对象。

a={1, 2.5, 'test', 3+4j, True, 5.3, 2.5}
print(a)
{1, 2.5, 5.3, 'test', (3+4j)}
b=set('hello')
print(b)
{'l', 'h', 'e', 'o'}
2.6 Dictionary(字典)

Dictionary(字典)是另一种无序的对象集合。
但与集合不同,字典是一种映射类型,每一个元素是一个键(key):值(value)对。
键必须是唯一的,即不同元素的键不能相同;另外,键必须是可哈希数据,即键不能是列表、集合、字典等类型;值可以是任意类型。
创建字典
既可以使用{},也可以使用dict函数。
zip函数的参数是多个可迭代的对象(列表等),其功能是将不同对象中对应的元素分别打包成元组,然后返回由这些元组组成的列表。以下三种结果一样:

a={'z':1,'f':2}
b=dict(z=1,f=2)
c=dict(zip(['z','f'],[1,2]))
print(a)
{'z': 1, 'f': 2}
print(b)
{'z': 1, 'f': 2}
print(c)
{'z': 1, 'f': 2}

访问字典元素
与列表等序列对象不同,在访问字典中的元素时不能通过下标方式访问,而是通过键访问

print(a['z'])
1

3、运算符

3.1占位运算符和算术运算符

占位运算符
%d 有符号整型十进制数
%s 字符串
%f或%F 有符号浮点型十进制数

s1='%s去了%s,本次%s,开心指数%d' %('张','郑州','很开心',99)
print(s1)
张去了郑州,本次很开心,开心指数99

算术运算符

运算符 功能描述
+ 相加
- 相减
* 相乘
/ 相除
// 整除
% 整除的余数 模
- 负数
+ 正数
** 次幂
i1,i2=10,3
print(i1**i2)
1000
3.2赋值运算符、比较运算符和逻辑运算符

赋值运算符

运算符 功能描述
= y=x x的值赋给变量y
+= y+=x 等价于y=y+x
-= y-=x 等价于y=y-x
*= y*=x 等价于y=y*x
/= y/=x 等价于y=y/x
//= y//=x 等价于y=y//x
%= y%=x 等价于y=y%x
**= y**=x 等价于y=y**x

比较运算符

运算符 功能描述
== y==x 如果y和x相等,返回True,反之返回False
!= y!=x 同理
> y>x 同理
< y<x 同理
>= y>=x 同理
<= y<=x 同理

逻辑运算符

运算符 功能描述
and x and y 如果x和y都是True,返回True,反之返回False
or x or y 如果x和y都为False,返回False,反之返回True
not not x 如果x为True,返回False;如果x为False,返回True
3.3位运算符

十进制转二进制
除基取余法:用2去除十进制整数,得到商和余数;
如果商不为0,则继续用2除,再得到商和余数,重复该步骤直至商为0;
最后将余数按照从后至前的顺序排列,即得到转换后的二进制数。#### 3.4身份运算符和成员运算符
二进制转十进制
二进制数转十进制数的规则是“按权展开求和”,即将二进制数的每一位写成数码乘以位权的形式,再对乘积求和。

11010B=1*24+1*23+0*22+1*21+0*20
=1*16+1*8+0*4+1*2+0*1
=16+8+0+2+0
=26
运算符 功能描述
& 按位与 y&x 如果y和x对应位都为1,则结果中该位为1;否则,该位为0
| 按位或 y|x 如果y和x对应位都为0,则结果中该位为0;否则,该位为1
^ 按位异或 y^x 如果y和x对应位不同,则结果中该位为1;否则,该位为0
<< 左移位 y<<x 将y左移x位(右侧补0)
>> 右移位 y>>x 将y右移x位(左侧补0)
~ 按位取反 ~x 如果x的某位为1,则结果中该位为0;否则,该位为1

位运算是指对二进制数进行逐位运算。

i1,i2=3,6
print(i1^i2)
5

计算方法:011B^110B=101B=5

3.4身份运算符和成员员运算符

身份运算符
身份运算用于比较两个对象是否对应同样的存储单元。

运算符 功能描述
is x is y 如果x和y对应同样的存储单元,则返回True;否则,返回False
is not x is not y 如果x和y不对应同样的存储单元,则返回True;否则,返回False
x,y=5,5 
print(x is y)
True

成员运算符
成员运算用于判断一个可迭代对象(序列、集合或字典)中是否包含某个元素。

运算符 功能描述
in x in y 如果x是可迭代对象y的一个元素,则返回True;否则,返回False
not in x not in y 如果x不是可迭代对象y的一个元素,则返回True;否则,返回False
x,y=10,['zhang',True,10] 
print(x in y)
True
3.5序列运算符和运算符优先级

序列运算符

运算符 功能描述
+ 拼接 x+y 将序列x和序列y中的元素连接,生成一个新的序列
* 重复 x*y 将序列x中的元素重复y次,生成一个新的序列
x,y=[666,True],['x',999]
z=x+y
print(z) 
[666, True, 'x', 999]

运算符优先级
在一个表达式中,通常会包含多个运算,这就涉及到了运算的顺序,其由两个因素确定:运算符的优先级和运算符的结合性。

4、条件语句

4.1条件语句概述

通过设置条件,可以使得某些语句在条件满足时才会执行。

1输入成绩并保存到变量score中
2 如果score小于60
3 输出“不及格”
4 否则,如果score小于70
5 输出“及格”
6 否则,如果score小于80
7 输出“中等”
8 否则,如果score小于90
9 输出“良好”
10 否则,如果score小于等于100 #显然,可以将条件去掉,直接改为“否则”
11 输出“优秀

4.2条件语句实现和pass

if、elif、else

if 条件1:
语句序列1
[elif 条件2:
语句序列2
……
elif 条件K:
语句序列K]
[else:
语句序列K+1]

score=eval(input('请输入成绩(0~100之间的整数):'))
if score<60:
print('不及格')
elif score<70: 
print('及格')
elif score<80:
print('中等')
elif score<90:
print('良好')
elif score<=100: #也可以改为“else:”
print('优秀')

pass表示一个空操作,只起到一个占位作用,执行时什么都不做

4.3循环语句

While循环
如果使用 while 循环,只要条件为真,我们就可以执行一组语句。
例子:只要i<10就会打印i:

i = 1
while i < 10:
  print(i)
  i += 1

For 循环
用于遍历可迭代对象中的每一个元素,并根据当前访问的元素做数据处理,其语法格式为:

for 变量名 in 可迭代对象:
语句序列

list=['z',True,100]
for i in list:
    print(i) 
z
True
100

使用for循环时,如果需要遍历一个数列中的所有数字,则通常利用range函数生成一个可迭代对象。
range函数的语法格式如下:

range([beg, ]end[, step])

print(list(range(1,5,2)))

range函数返回的是一个可迭代对象,通过list函数可将该对象转换为列表。

4.4 break、continue和else

break
用于跳出for循环或while循环。对于多重循环情况,跳出最近的那重循环。

i = 1
while i < 10:
  print(i)
  if i == 3:
    break
  i += 1

continue
用于结束本次循环并开始下一次循环。对于多重循环情况,作用于最近的那重循环。

i = 0
while i < 10:
  i += 1 
  if i == 3:
    continue
  print(i)

else
在for循环和while循环后面可以跟着else分支,当for循环已经遍历完列表中所有元素或while循环的条件为False时,就会执行else分支。

i = 1
while i < 6:
  print(i)
  i += 1
else:
  print("i is no longer less than 6")

结尾

记录自己的快乐学习日志,也祝贺观看到这的小伙伴早日学有所成,财富自由💰💰。
记得点赞👍、收藏👋呀!!!

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐