导入模块
简介
在 python 用 import 或者 from...import 来导入相应的模块。
将整个模块(somemodule)导入,格式为:import somemodule
从某个模块中导入某个函数,格式为:from somemodule import somefunction
从某个模块中导入多个函数,格式为:from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为:from somemodule import *
变量
1、赋值问题
a = b = c = 1(格式要正确,要有空格,否则报错)
a,b,c = 1,2,3
2、特征
1、不允许数字开头,但可以数字结尾
2、变量名可以使用_连接,user_name
3、变量区分大小写。
Type
介绍
type内置类可以可以查看一个变量对应的数据类型
a = 52
print(type(a))
格式、语法
格式:print()——括号是内容。
完整语法:print(value, ..., sep=' ', end='n', file=sys.stdout, flush=False)
解析语法:value:括号里面输入的值。sep:输出时各个值之间用哪种字符隔开,默认是空格。end:执行完print语句后,接下来输出字符的位置,默认是n换行执行。
Input
1、格式
格式:input()——括号内是输入提示。
语法:
age = input('请输入年龄:')
print(age)
2、练习题
输入一个秒数,将其按照时、分、秒的形式展示出来。
x = int(input('输入一个时间:'))
hour = x //3600 # 一小时等于3600秒,整除得到时。
min = x % 3600 // 60 #取余以后得到除去完整小时以后的秒数,再除以60,把秒换算成分。
miao = x % 60 #直接取余除以60秒以后的值,剩下的就是秒。
print(hour,min,miao)
注释
分类
单行注释:#
多行注释:''' 三个单引号''',"""三个双引号"""
快捷注释:Ctrl + / (选中的位置可快捷注释或取消注释)
Pass
1、作用
pass是一个无意义的,单纯是用来占位的。主要是为了保证一个程序运行的完整性,使程序不报错。
2、示列
a = int(input('数字:'))
if a > 18:
pass
print('合格')
Python基础数据类型
数字(Numbers)
1、整数
通常被称为是整型或整数,是正或负整数,不带小数点。
2、浮点数
浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
3、复数
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
4、长整数
无限大小的整数,整数最后是一个大写或小写的L。(python3被废除)
字符串(String)
1、格式
可使用单引号和双引号进行包含。
另外三个单引号和三个双引号可以指定一个多行字符串。
2、转义字符
n (换行)、t(空格)
3、字符串索引
索引使用的是中括号
a = 'python'
print(a[2]) #定义一个变量,然后在下面输出变量的某个位置,由0开始,可知2对应的是t
4、字符串切片
格式:
字符串.(开始.结束.步长)
a = 'pythonjava'
print(a[0:10:3]) #从0开始,那么0:10:3代表,从0开始到10结束,但是每个3个显示一个,所以就是phja
5、格式化输出
format():格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,占位符
a = '1314'
b = '521'
print(f'{a}{b}') #结果是:1314521
x = '大家好,我是{},今年{}岁'.format('张三',18)
print(x)
6、字符串更新
var = 'Hello World!'
print("已更新字符串 : ", var[:6] + 'Runoob!') #[代表结束在从var的0开始的弟6个字符],结果:Hello Runoob!
print("已更新字符串 : ", var + 'Runoob!') #完整打印var的内容,结果是:Hello World!Runoob!
字符串连接
使用 + 号进行连接。
i = 'i'
l = 'love'
y = 'you'
print(i + l + y) #结果是:iloveyou,想要结果字母间体现空格,可以在字符串的内部添加。
列表(List)
1、格式
使用[]中括号进行连接,是含有多个元素的序列。
list = [1,'2',True,2.2]
print(list)
2、列表的索引
与字符串的索引差不多,同样是从0开始,索引使用的是中括号。
list = [1,'2',True,2.2,6]
print(list[2:4])
3、列表添加元素
append(),可以追加一个元素,新追加的元素永远在列表的最后面。
list = [1,'2',True,2.2,6]
list.append(66)
print(list)
insert(),可在列表的任意位置添加元素,前提是要写好添加位置的序号(从0开始)
list = [1,'2',True,2.2,6]
list.insert(0,66)
print(list)
4、扩充列表
extend(),可以扩充列表,前提是输入的要是一个序列,字符串和集合还有列表等都是序列。
list = [1,'2',True,2.2,6] #案例一
list.extend((11,22,33,44,55))
print(list) #结果是把11,22,33,44,55全部分开写入list
list = [1,'2',True,2.2,6]
list.extend('python')
print(list) #结果是把python这个字符串的单词拆分开成单独的单词。
5、列表删除
pop(),默认是从列表的最后的一个元素删除,另外也可以指定删除位置。
list = [1,'2',True,2.2,6]
list.pop(1) #括号内不写内容的时候,默认是删除最后一个元素。
print(list)
remove(),在不确定元素的位置时候,可用remove直接把元素写入删除。
list = [1,'2',True,2.2,6]
list.remove(1)
print(list)
6、列表修改
直接通过元素的序号进行重新赋值。
list = [1,'2',True,2.2,6]
list[1] = '22'
print(list) #这样列表里面的'2'就变成了'22'
元组(Tuple)
元祖
元组属于不可变的列表,使用小括号表示,特性除不能修改,其他的索引和切片之类的与列表相同。
yz = (1,'2',True,2.2,6)
print(yz)
字典(Dictionary)
字典用{}大括号表示可由多种类型的元素组成,字典的组成就是:索引——>值,平时叫法:键值对,其中key(键)指的就是索引。
zd = {'name':'张三','age':18,'adder':'山东济南'}
print(zd) #其中可以分别查询,不如:ptint('name')
字典内容修改
内容修改和列表的相同,一样是用中括号进行重新赋值。
zd = {'name':'张三','age':18,'adder':'山东济南'}
zd['age'] = 22 #另外也可以通过赋值的方式,对字典进行增加:zd['兴趣爱好'] = '打篮球'
print(zd)
集合(Set)
类型
与字典的操作几乎相同
x = {1,'good',False}
布尔(Boolean)
类型
布尔类型只有True和False,用来表示真假对错。
数据类型注意事项
1、不可变数
:Number(数字)、String(字符串)、Tuple(元组)。
2、可变数据
List(列表)、Dictionary(字典)、Set(集合)。
数据类型转换
1、str转int
int内置类,可以将str转换为int
(float与之同理)
x = '365'
print(int(x))
也可写为:x = int (input('444'))
2、int转str
str内置类,转换为字符串
x = 365
z = (str(x))
print(type(z))
3、转换为布尔
print(bool(100)) 显示的True,数字中只有0转换为布尔的时候是False,其他的包括负数都是True。
print(bool('hello'))显示的Ture,英文中只有空字符串的时候显示的是False。空字符串:('')("")
print(boll(None))这个结果也是False。注意:None不加引号。除此之外还有空列表([])、空元祖(())、空字典({})。
使用(x,16或者8),可以将str转换为8或16进制
x = '365'
print(int(x,8))
函数
函数
主要是用于:
1、降低编程的难度
2、增加代码的复用性
格式:
def 函数名(参数列表):
函数体
#案例一
n = 1
s = 0
while n <= 100:
s += n #正常写法,s+=n的意思是,用n的值+s的值,刚开始s是0,当n等于1时,s+=n后s变成1,然后执行n+=1来获取新的n的值,再去循环至n<=100。
n += 1
print(s)
#案例二
def qiu_he(n,m): #define是函数的关键词,后面跟的是函数名,qiu_he的括号里面是函数的参数,下一行是函数体。
s = 0
while n <= m: #函数体
s += n
n += 1
return s
print(qiu_he(1,100))
#案例三
def area(width, height):
return width * height
d = 5
e = 8
print(area(d,e))
#案例四
def printinfo(name, age):
"打印任何传入的字符串"
print("名字: ", name)
print("年龄: ", age)
return
# 调用printinfo函数
age = 50
name = 'ddd'
printinfo(age, name)
形式参数
函数声明时,括号里面有参数—形式参数,简称形参,形参的值不确定,用来占位的。
def gushi(a,b,c,d): #可自定义形参的名字,但是要一致,这样在输出的时候就会依次将要修改的内容填入函数体。
print('从前有座'+ a)
print('山里有座'+ b)
print(b+'里有个'+c)
print(c+d)
gushi('大山','寺庙','张三','打水')
def gushi(a,b,c,d):
print('从前有座'+ a)
print('山里有座'+ b)
print(b+'里有个'+c)
print(c+d)
gushi(d='大山',a='寺庙',b='张三',c='打水') #这种写法相比较上面的是不需要按照顺序的,因为已经将变量和内容一一对应起来了。
函数返回值
def add(a,b):
c = a+b #变量c是在函数内部显示的,外部不可见。
return c # return是表示一个函数的执行结果
result = add(1,2) #获取add的执行结果
print(result * 4)
def add(a,b):
return a+b
print(add(1,2))
全局与局部变量
global可以在函数中使用,将全局变量的值在局部变量中修改。
Python运算符
算术运算符
运算
符号:+-*/(加减乘除),**幂运算,//整除,%取余。
print(1 +1)——2
print(3-2)——1
print(2*2)——4
print(9/3)——3.0
print(8**3)——512
print(81**(1/2)) ——9.0 记得1/2要加括号,这样才会优先计算
print(10 // 3)——3
print(10 % 3)——1
字符串运算符
运算
有限度的支持加法和乘法这两个运算,数字与字符串不能相加。
加法:将多个字符串拼接为一个字符串。
乘法:用于字符串和数字,将字符串重复多遍,次数由乘的数字决定。
赋值运算
运算
可变变量:*x,y,z = 1,2,3,4,5,6 ——>print(x,y,z)——> [1,2,3,4] 5 6
比较运算符
运算
小于(<)、大于(>)、大于等于(>=)、小于等于(<=)、不等于(!=)、等等于判断的是值(==)
字符串之间使用比较运算符,他们会对各自的字符编码进行比较。
逻辑运算符
运算
逻辑与(and):有False即False
逻辑或(or):有True即True
逻辑非(not):True——>False,False——>True
运算符优先级
运算
正常加减乘除的优先级跟数学相同。
逻辑运算的优先级:not>and>or
Python基础代码执行
分支语句
1、if...else
age = input('请输入年龄:')
nl = int(age)
if nl > 18:
print('欢迎光临,允许进入本网吧')
else:
print('未成年人禁止入本网吧')
2、if...elif...else
defen = input('请输入分数:')
df = int(defen)
if df >= 85 and df <= 100:
print('你的成绩是:A')
elif df >= 70 and df <= 84:
print('你的成绩是:B')
elif df >= 60 and df <= 69:
print('你的成绩是:C')
elif df >= 0 and df <= 59:
print('你的成绩是:E')
else:
print('请输入你正确的成绩。')
3、if语句嵌套
p = input('是否买票y/n:')
if p == 'y':
print('买了')
s = input('是否安检y/n:')
if s == 'y':
print('安检')
else:
print('无安检')
elif p == 'n':
print('没买票')
else:
print('非正确输入') #if语句里面还有if语句,就是嵌套
4、if的三元表达式
x = int(input('输入一个数字:'))
z = int(input('再输入一个数字:'))
if x > z:
y = x
else:
y = z
print('比较大的数是:',y)
#这上下两个程序最终都是相同的,上面是正常的if写法,下面是使用的三元表达式。
x = int(input('输入一个数字:'))
z = int(input('再输入一个数字:'))
y = z if x > z else x
print('比较大的数是:',y)
循环语句
for循环
for
格式:for 变量 in 可迭代对象:
可迭代对象包括:range、字符串、列表、字典、元组、集合。
range( )是python中产生一个数的集合工具,基本结构range(start,stop,step),即产生从start数开始,以step为步长,至stop数结束的数字集合,不包含stop数,start可以省略,默认为0,step也可省略,默认值为1。
range()其中(),如(1,5),那么输出的值就包含开始1但不包含结束5。
通过遍历range()产生的集合,并把集合中的每一个元素赋值给i,然后输出每一个i值,这里可以用continue和break做一个for循环测试break:直接跳出循环,不再执其后的语句以及不在进行循环;continue:跳出本次循环,不执行其后语句但继续从头执行循环;
for i in range(1,11):
print(i)
for m in [1,2,3,4,5,6,7,8,9,10]:
print(m)
#两个程序结果相同,不同的是第一个使用了range(),第二个使用了闭区间[]。而range(m,n)——>输出后的值是range(m,n-1),[]则是全部输出。
for m in 'hello':
print(m)
#并不是每次都要用range(),在遍历字符串的时候就不能使用range,会报错,只能用 for 变量 in 内容:
for 循环练习
1、案例一
求1-100的和
n = 0
for m in range(1,101):
n += m
print(n)
2、案例二
1.输入用户名和密码; 2.判断用户名和密码是否正确(name='admin',passwd='kele') 3.登录仅有三次机会,超过3次会报错
for denglu in range(5):
name = input('请输入用户名:')
passwd = input('请输入密码:')
if name == 'admin' and passwd == 'kele':
print('登录成功')
break
else:
print('请重新登录')
print('您的登录次数剩余%a'%(4-denglu))#%a后面的a,可以修改,a对应的是后面的(4-denglu)
else:
print('登录次数已被限制,请稍后尝试。')
3、案例三
利用for和if写cmd脚本
import os #导入os模块
for i in range(1000): #设置次数
cmd = input('cmd:') #输入命令
if cmd:
if cmd == 'exit': #当输入为exit时,直接退出break停止循环
break
else:
print('run %s' %(cmd))#%s后面的s就是(cmd)
os.system(cmd)#利用上面的导入,直接把cmd的结果输出。
else:
continue
for循环嵌套
for
for i in range(1,10):
for o in range(1,i+1):#其中i是上面i遍历出来的值,当上面i等于3时,下面的i就是(1,3),因为(1,3)只能遍历出1,2所以要加i+1,就变成了(1,4)==(1,i+1)。
print(f'{i}*{o}={i*o}', end=' ')
print()
while
格式:设定变量——while 判断语句:——print()
while死循环
1、案例一
判断数的大小
i = input('请输入分数:')
x = int(i) #将输入的str转换为int,因为str无法进行比较。
while x < 10:
print(x)
x = x + 1 #当x大于10则停止,否则一直+1
else:
print('结束')
2、案例二
while求1-100的和
i = 0 #求1——100的数的和
h = 0
while i < 100: #当i<100的时候,执行下面的程序
i += 1 #并且每次符合条件的时候,i的值都会+1,i += 1 可以写成 i = i + 1
h = h + i #h的值每次都去加上i的新值,直到条件不再符合,同时h = h + i 可以写成h += i
print(h)
while嵌套
1、案例一
九九乘法表
n = 1
while n <=9:
m =1
while m <= n:#当m小于等于n的时候,可以正常运行下面的print,不小于的时候,直接运行n=n+1,然后赋值给第一个n=1。
print(f'{n}*{m}={n*m}', end=' ') #f是格式化输出。
m = m +1 #当运行完上面的print时,会继续运行m=m+1,如果大于n,则直接略过print,运行n=n+1。
n = n +1
print()
2、案例二
九九乘法表
i = 0
while i < 9:
i += 1
k = 0
while k < i:
k += 1
print(k,'*',i,'=',(k * i),end=' ')
print()
for与while的区别
for与while区别
for循环后面跟的是一个序列:for 变量 in range(9):
while后面跟的是一个判断条件:while n <= 9:
while与for结合使用
while与for结合
n = 1
while n <=9: #当n<=9的时候,正常进行下一步for循环,n大于则停止。
for m in range(1,n+1): #当上面符合要求,则进行遍历n的数,并且执行print
print(f'{n}*{m}={n*m}', end=' ') #当for遍历结束以后,没有其他的数了则执行下面n=n+1,回到第一个,并将n的值赋值给n=1。
n = n +1
print()
循环控制语句
break—循环控制
用来结束整个循环。
1、案例一
当条件默认为true的情况进行。
while True:
s = input('输入某个数字即可停止运行:')
d = int(s)
if d == 0:
print('恭喜你,输入正确!')
break
else:
print('你输入的不对哦!')
2、案例
判断账号密码是否正确的两种方式。
username = input('请输入账号:')
passwd = input('请输入密码:')
while username != 'zhangsan' and passwd != '123':
username = input('请输入账号:')
passwd = input('请输入密码:')
#这个程序,看似是正常运行,但是存在一种逻辑BUG,只有是True的时候,while才会运行,当username输入是zhangsan或者passwd输入是123的时候,那么while的语句中and本来就是有False即False(username != zhangsan,那么while的第一个条件是True,后一个就不会在运行,因为用的是and,自然也是True),那么输入了zhansgan或123,就正合其意,只要username和passwd有一个是False则整个while就符合条件,就会停止运行。
#解决办法可以把and换成or,因为or的逻辑运算是有True则True,当输入zhangsan时,前面的username != zhangsan,就会是True,那么后面的就不在去看了,自然也是True,即可持续运行。
while True:
username = input('请输入账号:')
passwd = input('请输入密码:')
if username == 'zhangsan' and passwd == '123':
break
#这个代码跟案例一的一样,没有任何冗余和逻辑缺陷。先说的条件就是整个输入都是True,while的条件一直满足。所以后面的if怎么样都没关系,当账号密码正确的时候,直接运行的是break,结束本轮循环。
continue—循环控制
用来结束本轮循环,开始下一轮循环。
1、案例一
v = input('请输入一个数:')
var = int(v)
while var > 0:
var = var -1
if var == 5:
continue
print ('当前变量值 :' ,var)
2、案列二
for循环配合continue遍历
for letter in 'Python.': # 第二个实例
if letter == '.': #输入python.,当letter变量等于.时,那么不显示.,直接进行continue,继续执行,直至全部显示。
continue
print ('当前字母 :', letter)
3、案例三
死循环
i = 0
while i < 5:
if i == 3:
continue
print(i)
i += 1
文件操作
读取文件
读取文件用到的参数:
同级目录、打开文件open()、读取文件read()、关闭文件close()
d = open('ddd.txt',encoding='utf-8') #首先创建一个变量接收open()打开的文件ddd.txt,采用的编码是ust-8。
s = d.read() #新建一个变量用来读取d变量接收的文件内容。
print(s) #输出s变量读取的内容。
d.close() #输出后将接收的文件关闭。
写入文件
f = open('test.txt',mode='w',encoding='utf-8') #首先创建变量,open打开一个文件,mode是模式,w是write写入的意思,编码是utf-8。
f.write('张三n李四n王五')#写入名字并换行。
f.close() #关闭文件
文件写入注意事项
文件写入的时候,如果mode用的方法是w,那么后面重新写入且运行的内容会把之前的内容覆盖掉,如果不想被覆盖,可以把mode方法换成a——mode='a'即可。
'r':读, 'w':写 ,'a':追加, 'r+' == r+w(可读可写,文件若不存在就报错(IOError)), 'w+' == w+r(可读可写,文件若不存在就创建), 'a+' == a+r(可追加可写,文件若不存在就创建) 对应的,如果是二进制文件,就都加一个b就好:'rb' 'wb' 'ab' 'rb+' 'wb+' 'ab+'
原文始发于微信公众号(三零二):Python基础
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论