python入门
基本概念和基本数据类型
变量:变量是编程语言中最基本的概念,和字面意思一样,指的就是他们的值可变,和我们 以前学习的方程类似,变量可以代入任何值。
我的理解:变量就是一个可变的量,在变量中可以存任何值
例子:我们把会变的菜价,变成变量,同样也是可以的
变量的命名规则:
变量一般使用: 英文字母、下划线 和 数字组成(变量不能以数字开头和一些特殊符号 如:$、@)
关键字不能做变量名,内置函数最好也不要做变量名
关键字
#如何查看关键字和内置函数
import keyword #keyword模块记录了python中所有的关键字
print(keyword.kwlist)#keyword.kwlist查到python所有关键字
dir(__builtins__) #dir(__builtins__)可以查找到python中所有的内置函数
变量的引用:
#如:在同一时间给变量赋值两次
price = 4.50
price = 6.00
输入和输出
输入用:input() 输出用:print()
in_a = input('请输入一个值:')
print('输出的值:',in_a)
注意:input()函数输入的值都是字符串的类型
数值类型
数字类型分为:
int 整数:3
float 浮点型:3.14
bool 布尔型:False True
注意:在python中布尔值的首字母要大写
数值类型的计算
‘+’ 加法运算 例子: …
‘-’ 减法运算 例子: …
‘*’ 乘法运算 例子: …
‘******’ 幂运算 例子:2 ** 3
‘/’ 除法运算 例子:9/6 这个会得到小数:1.5
‘//’ 整除运算 例子:9/6 这个会得到整数:1
‘%’ 取余运算 例子:9/6 这个会得到余数:3
布尔型的加减运算 True+False 所以这里是 1+0
这里我们把True看作1,False看作0
字符串
字符串的定义
定义方式有三种分别为单引号和双引号和三引号
三引号和单引号和双引号有所不同,三引号定义时可以换行
例子:
str1 = 'hello python'
str2 = "hello python"
str3 = '''hello python
你好,python语言'''
字符串的加乘法(不能进行其他运算)
'hello'+'python'
#结果为:'hellopython' 将两个字符串拼接到一起
'hello' * 3
#结果为:'hellohellohello' 将3个字符串拼接到一起
字符串的拼接
格式化拼接
s = 'nice to'
t = 'meet you'
r = '!'
#如果我们想在每个字符串之间加空格或者其他字符,我们可以在%s之间加
print('%s %s %s' %(s,t,r))
利用join拼接
#如果我们想在每个字符串之间加空格或者其他字符,我们可以在''里面加
print('*'.join([s,t,r]))
利用format拼接
#如果我们想在每个字符串之间加空格或者其他字符,我们可以在{}之间加
print('{}*{}{}'.format(s,t,r))
字符串格式化
%r:原样输出对象
常用的数值模块
浮点高精度计算
#1.01-0.9 值为:0.10999999999999999
import decimal #导入浮点高精度模块
decimal.Decimal('1.01') - decimal.Decimal('0.9')
#值为:Decimal('0.11')
使用时注意传入的是字符串
数学模块(math)
import math
math.pi
Math模块有常见的数学函数,有需要的可以在这个模块里面找找
dir(math) #查找所有的数学函数
'''
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
'''
条件语句
if语句
if的使用:if后面跟上表达式,注意加冒号和缩进
else使用:else不能单独使用,后面直接跟上冒号和缩进,没有判断
elif使用:只能跟在if后面,不能单独使用
if常用运算符
‘>’ ‘>=’ ‘<’ ‘<=’ ‘==’ ‘!=’
#语法:
if(表达式): #if代表'如果'的意思 如果表达式成立,执行if下的代码块
代码块
#else代表'否则'的意思 如果if的表达式不成立我们就可以输出else下的代码块
else:
代码块
'''
例子:如果周末不下雨,就去逛街,否则就在家学习像这样的一个选择,
该如何用代码表示出来呢?
'''
weather = input('请输入一个天气:')
if weather == 'sun':
print('逛街')
else:
print('在家')
优化的原则: 1. 逻辑更加简单,比如少用否定,多用肯定
2.用英文代替拼音,减少歧义
多重选择
三目运算符
#语法: 代码块 判断表达式 代码块
print('ok') if a>0 else print('no')
注意:只有简单if判断可以使用,过于复杂判断就不要使用了,那样会影响代码的可读性
逻辑运算符
逻辑运算符中返回的值都是bool型 False、True
and为"与运算"
#逻辑与运算符 用and
if x>1 and y>9:
print('两个表达式为真')
else:
print('两个表达式其中一个为假或两个都为假')
or为“或运算”
#逻辑或运算符 用or
if x>1 and y>9:
print('两个表达式其中一个为真')
else:
print('两个表达式都为假')
False为”非运算“
if False: #可在False加一个not,就输出第一句
print('为真就为假')
else:
print('为假就为真')
逻辑短路
逻辑运算过程中,如果已经能够得到最后的值,则不会再进行后面的判断,
这个称为逻辑短路
a = 3
a >6 and a> 2 #这里判断a>6为False时,后面就不会继续判断,造成逻辑短路
a>1 or a>2 #
while循环
while 的使用和 if 类似,
判断为真的时候则运行缩进里面的代码,
判断式为假时则停止循环
#例:打印1到10以内吧的数
i = 1
while i<10:
print(i)
i+=1
使用 while 循环要注意:
循环一定能够停止
注意判断式是否能够为假
while 循环,只要条件为True,就会一直执行while下的代码块,知道while判断为False才会停止运行
#语法:
while 表达式:#只要表达式为True,while下的代码块会一直执行,直至while为False
循环体/代码块
while循环中else的使用
#语法:
while 表达式:
循环体
else: #当while中的表达式为False时执行
代码块
#break和continue的使用
#break
i = 1
while i<10:
print(i)
if i==5:
break #结束该循环
i+=1
'''
while 后面也可以直接跟上True,但是内部就必须要使用break来终止循环使用break终止的循环,是不会执行else的内容
'''
#continue
i = 1
while i<10:
if i==5:
continue #结束本轮循环,进入下一轮循环
print(i)
i+=1
迭代循环
for 循环用于迭代序列(即列表,元组,字典,集合或字符串)。
这与其他编程语言中的 for 关键字不太相似,而是更像其他面向对象编程语言中的迭代器方法。
通过使用 for 循环,我们可以为列表、元组、集合中的每个项目等执行一组语句。
遍历一个字符串
之前学过字符串
#for的遍历一个字符串
str = "python"
for i in str: #遍历str这个字符串
print(i,end = ',')
end 可以设置每个值打印之后输出的字符串,默认是换行
range()函数**
range() 函数返回一个数字序列,默认情况下从 0 开始,并递增 1(默认地),并以指定的数字结束。
range()函数两个参数
#语法:range(开始值,结束值)
for x in range(10):
print(x)
注意:range(10) 不是 0 到 10 的值,而是值 0 到 9。
range() 函数默认 0 为起始值,不过可以通过添加参数来指定起始值:range(3, 10),这意味着值为 3 到 10(但不包括 10):
for x in range(3,10):
print(x)
range() 函数默认将序列递增 1,但是可以通过添加第三个参数来指定增量值:range(2, 30, 3):
使用 3 递增序列(默认值为 1):
for x in range(2,30,3):
print(x)
continue
for i in range(1,100):
if i%2 == 0 or i%3 == 0:
continue #结束本次循环,进入下一次循环
elif i%17 == 0:
break #结束循环
else:
print(i,end = '')
else: #前面有break所以这句不会执行
print('循环结束')
for 循环中的 else 关键字指定循环结束时要执行的代码块:
else:循环结束时执行else,但是如果之前有break就不会执行else
#打印1到9所有数字,并在循环结束时打印一条消息:
for i in range(10):
print(i)
else:
print('代码块结束!')
嵌套循环
嵌套循环是循环内的循环。
“外循环”每迭代一次,“内循环”将执行一次:
#九九乘法表
for i in range(1,10):
for j in range(i,10):
print(f'{
i}*{
j}={
i*j}',end = ' ')
print(end = '\n')
pass语句
for 语句不能为空,但是如果您处于某种原因写了无内容的 for 语句,请使用 pass 语句来避免错误。
for x in [0, 1, 2]:
pass
序列类型-列表、元祖
列表的定义
列表就如同一个菜篮子,可以放菜,也可以放钱
因此列表里面既可以放字符串,也可以放数值类型数据
除此之外,列表里面可以几乎放python的任何对象
#列表里面既可以放字符串,也可以放数值类型数据
thislist = ['python','java','php',100]
列表的增删改查
index:可以根据元素找到元素的索引
添加:append、extend、insert 这三个方法
如果是直接两个列表相加,记得重新赋值,否则不会改变值
删除:pop、remove、clear 这三个方法
删除是不可逆的,所以删除前要确定好
copy: 复制列表,类似于保存快照
count: 可以统计列表里面某个元素出现的次数,也属于查找
reverse:是将列表顺序颠倒过来,没有排序
sort:对列表中元素进行排序,采用Timsort算法排序
#列表里面既可以放字符串,也可以放数值类型数据
thislist = ['python','java','php',100]
#列表的索引取值,也可以是负数
thislist.index(1)
thislist.index(-1) #这里是从列表的最后面开始取值
#添加元素
thislist.append('香蕉') #在列表中添加一个元素
thislist.extend(['肉','豆腐']) #在列表中添加多个个元素
thislist