python入门
1、输入与输出
1、输入
input:获取键盘输入的内容(为str类型)
a=input(" ")
a=int(input(" ")) #可强制转换input类型
定义变量(用来存储数据可以被覆盖):
变量名 = 数据
或变量名a,变量名b= 数据a,数据b
eg:a=10
变量命名规则
变量必须以字母(a-Z)或下滑线_开头
变量区分大小写
关键字不用作为变量名
2、输出
python输出可使用print( ),内容可加在括号里。
Python 可以使用单引号(’)、双引号(")、三引号(’’’ 或 “”")来表示字符串。
也可print(变量名,变量名)
占位符:%(%后面跟变量类型)
%s字符串 %d十进制的数字类型 %f单精度浮点型(带小数)
换行:\n
print('变量名:{}'.format(变量名)) # 也可这样输出
3、数据类型
print(type(a)) #输出a的数据类型
a=() #元组类型
print(type(a))
b=[] #列表类型
print(type(b))
c={} #字典类型
print(type(c))
对于列表增加:可用append() 方法
其用于在列表末尾添加新的对象。
使用语法:list.append(obj)
obj – 添加到列表末尾的对象。
例:aList = [123, ‘xyz’, ‘zara’, ‘abc’];
aList.append( 2009 );
对于字典增加或替代:
1:通过键=值的方式进行添加。如果键存在,则会将旧的值进行覆盖,如果不存在则添加。例:
a = {
“name”:“sue”,
“Age”:33
}
a[“Age”]=22
print(a)
2:使用update()添加将新字典中所有的键值对全部添加到旧字典对象上。如果key重复,则覆盖。例:
a = {
“name”:“sue”,
“Age”:33
}
b = {
“Age”:22
}
a.update(b)
print(a) # {‘name’: ‘sue’, ‘Age’: 22}
2、基本操作运算符
(1)算数运算符
符号 | 作用 |
---|---|
+ | 加法运算 |
- | 减法运算 |
* | 乘法运算 |
** | 指数(2**3=8) |
% | 取余 |
/ | 除法运算(结果保留小数点后面的数) |
// | 除法运算(结果只保留整数) |
(2)比较运算符
符号 | 名称 |
---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
(3)逻辑运算符
符号 | 实例 |
---|---|
and | x and y |
or | x or y |
not | not x |
优先级
()>not>and>or
(4)赋值运算符
符号 | 作用 |
---|---|
= | 赋值(将等号右边的值赋给左边变量) |
+= | 加法赋值(c+=a等效于c=c+a) |
-= | 减法赋值(c-=a等效于c=c-a) |
*= | 乘法赋值(c*=a等效于c=c*a) |
/= | 除法赋值(c /=a等效于c=c/a) |
%= | 取余赋值(c%=a等效于c=c%a) |
**= | 指数赋值(c**=a等效于c=c**a) |
//= | 取整赋值(c//=a等效于c=c//a) |
3、语句
1、if-else
import random #导入random代码工具箱
num=random.randint(0,10000) #random.randint()表示直接调用工具箱中的randint()函数,random.randint(0, 10000)表示生成0~10000之间的随机整数
if num > 5000:
print("特等奖")
if num >= 9000:
print("奖金1000*1")
else:
print("奖金800*1")
elif 3000 < num <= 5000:
print("一等奖\n奖金500*1\n")
else:
print("二等奖")
if num > 1500:
print("奖金300*1")
else:
print("奖金100*1")
#猜拳小游戏
import random
person=int(input('请出拳:[0:石头 1:剪刀 2:布]:'))
computer=random.randint(0,2)
if person==0 and computer==1: #多条件
print("你赢了")
elif person==1 and computer==2:
print("你赢了")
elif person==2 and computer==0:
print("你赢了")
elif person==computer:
print('平手')
else:
print('你输了')
2、while循环
a=1 #初始值
while a<=100: #条件表达式
print(a)
a+=1 #变量的自增自减(若没有这个将导致死循环)
#打印九九乘法表
row=1
while row<=9:
col=1
while col<=row:
print("%d*%d=%d"%(row,col,row*col),end=" ") #end=" "意思是末尾不换行,加空格
col+=1
print( ) #控制换行
row+=1
#用户登陆程序(while——else语句)
i=0
while i<=2:
account=input('请输入账号:')
password=input('请输入密码:')
if account=='kx' and password=='123':
print('恭喜您登录成功')
break
else:
i+=1
a=3-i
print('登录失败')
print('您还有%d次登录机会'%a)
else:
print('您的账号已被系统锁定')
3、for循环
#for 临时变量 in 容器
txt='时光鸡'
for a in txt:
print(a)
#range函数可以生成一个数据集合列表
#range(起始,结束,步长)
#for a in range(3)即:从0到3,不包括3,即0,1,2
#for a in range(1,3)即:1.2
for a in range(1,100,2)
print(a)
#求1到100的累加和
sum=0
for a in range(1,101):
sum+=a
print(sum)
#打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%d"%(i,j,i*j),end=' ')
print( ) #控制换行
#用户登陆程序(for——else语句)
account='kx'
password='123'
for i in range(3):
a=input('请输入账号:')
b=input('请输入密码:')
if account==a and password==b:
print('恭喜您登录成功')
break
else:
print('登录失败')
print("您还剩余%d次机会" %(2-i))
else:
print('您的账号已被系统锁定')
4、关键字
break
满足条件直接结束本层循环
continue
结束本次循环,继续执行下一次循环
注:这两个关键字只能用于循环中
sum=0
for a in range(1,101):
sum+=a
if sum>=100:
break # 结束循环
print("sum=%d"%sum)
#求奇数项
for a in range(1,100):
if a%2==0:
continue
print(a)
4、字符串
# in 判断对象是否存在结果是一个bool值
a='人生'
print('人' in a)
函数
capitalize() #首字母变大写
endswith/starswith() #判断是否以('')结束/开始
find() #查找x在序列对象中的位置,如果没有找到就返回-1
index() #查找x在序列对象中的位置,如果没有就会报错
isalnum() #判断是否是字母和数字
isalpha() #判断是否是字母
isdigit() #判断是否是数字
islower() #判断是否是小写
join() #循环取出所有值用xx去连接
lower/uper() #大小写转换
swapcase() #大写变小写,小写变大写
lstrip/rstrip/strip() #移除左/右/两侧空格
split() #切割字符串
title() #把每个单词的首字母变成大写
count() #统计出现的次数
使用方法:b=a.capitalize()
b=a.find('x')
索引从0开始(从左开始)或从-1开始(从右开始)
1、切片
切片:可以根据下标来获取序列对象的任意[部分]数据。
使用语法:[起始下标:结束下标:步长](步长默认为一,从左到右,左闭右开)
a='python'
print(a[0:3:1])
print(a[2:]) #第三个字符到最后
print(a[::-1]) #倒叙输出
2、列表
list是一种有序的数据集合,用[ ]来表示列表类型,数据项之间用逗号分割(支持索引和切片)
a=[1,2,'汉字']
print(len(a)) #len函数可以获取到列表对象中的数据个数
print(type(a))
a=['abcd',123,12.23,'read',True]
print(a)
print(a[0]) #输出第一个元素
print(a*2) #输出两次列表中数据
a[0]=12 #修改第一个数据
del a[0] #删除列表中第一个数据(也可批量删除)
a=list(range(10)) #强制转换为list对象
append( ) #在列表后面追加( )
insert(插入下标位置,'所要插入的数据') #插入操作
extend() #拓展,批量追加添加
remove( ) #移除指定的元素
pop() #移除所选索引值的元素
sort() #列表排序
index() #查找元素对应索引值
3、元组
元组在创建后不能做任何修改(当元组只有一个元素时,要数据项加上逗号,不然解释器会当作整形来处理)
a=('abce',123,12.23,'汉字',[11,22,33])
print(a)
for item in a:
print(a,end=' ')
print(a[2:4])
print(a[::-1])
print(a[::-2]) #每隔两个取一次
print(a[-2:-1:]) #倒着取下标 为-2到-1区间的
a[4][0]=55 #可以对元组中的列表数据修改
print(a)
4、字典
字典是由键值对组成的集合,且不是序列类型,没有下标概念,是无序的键值集合。
#添加字典数据
dictA={} #空字典
dictA['a']=10 #key:value
dictA['b']=20
print(dictA)
dictB={'a':'10','b':'20'}
print(len(dictA)) #获取数据项长度(以逗号分割)
print(dictA['a']) #通过键获取对应的值
dictA['a']=30 #修改键对应的值
dictA.update({'a':40}) #可以添加或更新
print(dictA.keys()) #获取所有的键
print(dictA.values()) #获取所有的值
print(dictA.items()) #获取所有的键和值
#删除操作(通过指定键删除)
del dictA['a']
dictA.pop('a')
#排序操作
print(sorted(dictA.items(),key=lambda d:d[0]))
5、函数
1、函数的调用
定义:
def+关键字+小括号+冒号+换行缩进+代码块
def 函数名():
函数代码块
def a():
print('rand')
print('i')
a() #函数调用
def a(name,height,weight,hobby,pro): #形式参数
# 函数代码块
print('%s的身高是%f' %(name,height))
print('%s的体重是%f' %(name,weight))
print('%s的爱好是%s' %(name,hobby))
print('%s的专业是%s' %(name,pro))
# 调用带参数的信息
printInfo('李',180,70,'体术','忍者') #实参
2、函数参数
(1)必选参数
```python
def sum(1,2): #形式参数:只是意义上的一种参数,在定义的时候是不占内存地址的.
sum=a+b
print(sum)
sum(1,2) #1、2实际参数:实参,实实在在的参数,是实际占用内存地址的
# sum(15) #不能这样写的,
(2)默认参数
def sum1(a,b=40,c=90):
print('默认参数使用=%d'%(a+b))
sum1(10) #在调用的时候如果未赋值,就会用定义函数时给定的默认值
(3) 可变参数(元组类型)
def getComputer(*args):
'''
计算累加和
:param args: 可变长的参数类型
:return:
'''
for item in args: #把字典中每对key和value组成一个元组,
#并把这些元组放在列表中返回。
result+=item
pass
print('result=%d'%result)
pass
getComputer(1)
getComputer(1,2)
getComputer(1,2,3)
getComputer(1,2,3,4,5,6,7,8)
# 关键字可变参数(字典类型)
# ** 来定义
# 在函数体内 参数关键字是一个字典类型 key是一个字符串
def keyFunc(**a):
print(a)
# 调用
# keyFunc(1,2,3) 不可以传递的
dictA={"name":'kx',"mm":123}
keyFunc(**dictA)
# keyFunc(name='peter',age=26,)# 也可这样直接调用
# keyFunc() ## 也可这样直接调用
#两种一起
def complexFunc(*args,**kwargs):
print(args)
print(kwargs)
complexFunc(1,2,3,4,name='kx')
complexFunc('密码'=123)
3、函数返回值
#函数执行完以后会返回一个对象,如果在函数的内部有return 就可以返回实际的值,否则返回None
def sum(a,b)
sum=a+b
return sum #将返回值赋给其他变量
print(sum(10,30))
4、函数嵌套
def fun1():
print("--------------fun1 start-------------------")
print("--------------执行代码省略-------------------")
print("--------------fun1 end-------------------")
pass
def fun2():
print("--------------fun2 start-------------------")
# 调用第一个函数
fun1()
print("--------------fun2 end-------------------")
pass
fun2() #调用函数2
5、函数的基本类型
(1)无参数,无返回值,一般用于提示信息打印.
def myprint():
print("-"*20)
(2)无参数,有返回值,多用在数据采集中,比如获取系统信息。
def mycpu():
#获取cpu信息
return info
(3)有参数,无返回值,多用在设置某些不需要返回值的参数设置。
def set(a):
pass
(4)有参数,由返回值,一般是计算型的,需要参数,最终也要返回结果。
def cal(a,b):
c=a+b
6、局部变量和全局变量
局部变量:就是在函数内部定义的变量(作用域仅仅局限于函数内部)
def printInfo():
# name='kxr' #局部变量
print('{}'.format(name))
pass
def TestMethod():
name='cd'
print(name)
pass
printInfo()
TestMethod()
#作用:为了临时的保存数据 需要在函数中定义来进行存储
全局变量:就是在函数外部定义的外部。
pro='信息与计算科学' #全局变量
name='kx' #局部变量优先级大于全局变量
def printInfo():
# name='peter' #局部变量
print('{}.{}'.format(name,pro))
pass
def TestMethod():
name='cd'
print(name,pro)
pass
#如果在函数的内部要想对全局变量进行修改的话 对于不可变类型【str 元组 number】必须使用global 关键字进行声明
7、匿名函数
lambda #创建匿名函数(没有名字的函数)
#仅能封装有限逻辑
#格式:lambda 参数1,参数2,参数3:执行代码语句
#例:用lambda表达式计算两个数的和(自带return)
test=lambda x,y:x+y
test(1,3)
test(4,5)
#普通函数
def test(x,y):
return x+y
#也可通过变量调用匿名函数
a=lambda x,y:x+y
print(a(12,21))
8、三元运算
b if a else c
#若满足条件a,则输出b,否则输出c
#例
test=67
print('成绩合格'if a>=60 else'成绩不合格')
#也可和匿名函数一起用
test=lambda x,y:x if x>y else y
print(test(12,21))
9、递归函数
#优点:逻辑清晰
#缺点:容易导致内存资源紧张
#例:求10!
def a(n):
if n==1:
return 1
else:
return n*a(n-1)
print(a(10))
(注:本人小白一个,文章部分文字摘自于
作者:求知讲堂(老师真的讲的特别详细,推荐大家去看一看)
https://www.bilibili.com/video/BV1vA411b7Rn?p=1
出处: bilibili
仅供个人学习)