Python编程
IDE:集成开发工具 python,java,c,c++,c#,javascript,php,R,ruby, Python(目前有两个大版本Python2—Python3)的集成开发工具—pycharm
- 适合小白,非常简单
- 易学
- 免费开源
- 可移植性
- python支持面向对象的编程又支持面向过程的编程
- 丰富的库
- 代码规范 在python2版本中加入汉字需要在首行输入下面两行参数之一
#coding=utf-8
#-*- coding:utf-8 -*-
print(**”你好!!!”**)
print(**”hello world”**)
#注释:1.# 2.快捷键:Ctrl+/ 取消注释:Ctrl+/ 3.’''注释内容'''
#在python语言里单引号与双引号不敏感(单引号双引号都可以使用在英文状态下)
#换行输出使用print
#print(”你好!!!")
**’’’print(“hello world”)’’’**
#print(’hello world')
#print(”'hello world'")
#不换行输出:括号内容后加 逗号end=‘ '
print(**”admin”**,end=**’ ‘**)
print(**’123456’**)
print(**’123456789’**,**’hello’**)
#一行运行比较长时(在字符中间敲击enter可以自动换行并填充格式)
print(**’sakdjhsakjdhjkasbfclkjsadbvlj’**
** ‘kasbdlvbslkqjdvblkjasdbvlkjbasdfjv’**)
print(**’dasjdkjnsalkdkask’**\
**’ldjklsakjdjksad’**)
#变量类型
a=100 #整数型
b=96.3 #浮点型(小数型)
c=**’jack’**#字符串
print(a)
print(b)
print(c)
#python里常见的五种标准数据类型
#1.数字 2.字符串 3.list(列表) 4.tuple(元组) 5.dict(字典)
#字符串
str =**’hello world!!!’**
print(str)#输出完整的字符串
print(str[0])#输出字符串里的第一个字符
print(str[1])#输出字符串里的第二个字符
print(str[3:7])#输出字符串里的第四道第八个之间的字符串 左闭右开
print(str[3:])#输出第四个字符之后的所有内容
print(str[:])#输出完整字符串
print(str[::-1])#反向输出所有的字符串
print(str[-4])#输出倒数第四个字符
print(str*2)#连续输出2次字段(输出几次*号后面就跟几)
str1=**’admin’**
print(str1+str) #将两个变量值拼接在一起
#切片
#通过下标的方式获得某一元素,或者通过指定下标范围来获得一组序列的元素这种访问序列的方式称为切片
#字符串里切片的操作符可以用这几种:[] 取单个元素 [:]正向 [::]反向
#关于python格式化字符串 %d:格式化整数 %s:格式化字符串 %f格式化浮点型
name=**’小张’**
kg=56
sg=1.78
print(**’我的名字是%s,我的体重是%d kg!’**%(name,56))
print(**’我的名字是%s,我的体重是%d kg,我的身高%f m!’**%(name,kg,sg))
不加kg,m也可以实现,只是语句之后不显示单位### 
#格式化符号:%d:格式化整数 %s:格式化字符串 %f:格式化小数(浮点数)
#针对单个变量(s之后的点加不加都可以)
print(**’我的名字是%s.’**%name)### 
### 
#列表
#列表的操作,也可以使用切片
#列表里可以有数字,字符串,列表
list=[**’jack’**,100,100.3,[**’rose’**,**’cat’**,65]]
tinylist=[123,**’John’**]
print(list)#输出列表
print(list[0])#输出列表里的第一个元素
print(list[2:])#输出第3个以及之后的所有元素
print(list[:]) #输出完整的列表
print(list*2)#输出列表两次
print(list+tinylist)#将两个列表拼接在一起
print(list[::-1])#将列表反向输出
#更新列表
list2=[]
list2.append(**’baidu’**)#向list2添加一个baidu元素
list2.append(**’soso’**)
print(list2)
#删除列表元素
list2.remove(**’baidu’**)#去除list2里的baidu元素
print(list2)
list.reverse()#反向输出列表,并改变列表顺序;
print(list)
list[0]=**’bell’**#修改列表元素
print(list)
Print(list[3][0])#输出list表里的第三个列表里的第一个
list.reverse() #反向列表中的元素,在list.reverse()就可以恢复
print(list)
list[0]=‘bell’
print(list)
#元组
#元组里可以放字符串,数字,元组;
tuple=(**’runroob’**,**’John’**,100,(**’name’**,67))
tinytuple=(123,**’sougou’**)
print(tuple)#输出元组
print(tuple[0])#输出元组的第一个元素
print(tuple[1:3])#输出元组的第2个到第4个之间的元素 左闭右开
print(tuple[2:])
print(tuple[:])
print(tuple*2)
print(tuple+tinytuple)
#元组不支持修改,而列表是可以的;
tuple[0]=**’hello’**
print(tuple) #会出现报错,因为元组中的元素无法修改
#字典
#以key-value形式展示:键值对
tinydict={**’name’**:**’rose’**,**’code’**:7536,**’dept’**:**’sales’**}
dict={}
dict[**’one’**]=100#添加键值对
dict[**’two’**]=**’this is wuo’**
dict[1]=**’0.1’**
print(tinydict)
print(dict)#输出字典
print(tinydict[**’code’**])#输出键对应的值
print(tinydict.keys())#输出字典里所有的键
print(tinydict.values())#输出字典里所有的值
#删除
**del**dict[1]#删除字典里1条目
print(dict)
dict.clear()#清空字典
print(dict)#
**del**tinydict#删除字典
print(tinydict)
#列表是一个有序的集合,字典是没有顺序的(无序的)对象集合
#列表和字典的区别:字典可以通过键来存取,而列表是通过偏移来存取,列表是中括号,字典是花括号并键值对形式存在
#列表与元组的区别:列表是[]中括号,元组是()小括号,列表里的元素可以修改,元组里的元素不可以修改。
#python里的运算符
#算数运算符
#加减
a=21
b=10
c=a+b
print(**’c的值为:’**,c)
c=a-b
print(**’c的值为:’**,c)
c=b-a
print(**’c的值为:’**,c)
#乘除
c=a*b
print(**’c的值为:’**,c)
c=a/b
print(**’c的值为:’**,c)
c=a%b#求余数
print(**’c的值为:’**,c)
print(**’2的3次方为:’**,2**3)#2的3次方
c=a//b#求商
print(**’c的值为:’**,c)
#python里的比较运算符
#赋值==
a=100
b=81
**if**a>b:
print(**’a的值为:’**,a)
**if**a>=b:
print(**’a的值为:’**,a)
**if**b<a:
print(**’b的值为:’**,b)
**if**b<=a:
print(**’b的值为:’**,b)
**if**a==b:#等于用==
print(**’两个值相等’**)
**if**a!=b:#不等于用!=
print(**’两个值不等’**)
#python里的成员运算符
a=3
b=**’o’**
list=[1,2,3,4,5]
tuple=[1,2,3,4,5]
str=**’hello world’**
**if**a **in**list:
print(**’a在list中’**)
**if**a **in**tuple:
print(**’a在tuple中’**)
**if**b **in**str:
print(**'b在str中'**)
**if**a **not in**list:
print(**'a不在list中'**)
#if的基本用法
#布尔型 True 真 False 假
#if else
flag=**False**
name=**'Linux'**
**if**name==**'python'**:
flag=**True**
print(**'welcome'**)
**else**:
print(name)
#if
**if**name==**'linux'**:
print(**'name is %s'**%name)
num=10
**if**num >0 **and**num <15:
print(num)
**if**num <0 **or**num >5:
print(num)
#elif 在if和else之间可以使用多个elif
score=78;
**if**score>=90 **and**score<=100:
print(**'优秀'**)
**elif**score>=70 **and**score <90:
print(**'良好'**)
**elif**score>=60 **and**score<70:
print(**'及格'**)
**elif**score>=0 **and**score<60:
print(**'不及格'**)
**else**:#所有条件不满足用else
print(**'分数不对'**)
#for循环 ----遍历 range只可以生成整数,不能生成小数
name=**'python'**
**for**i **in**name:#for和in之间的变量是可以为任意的;
print(**'正在输出:'**,i)#将这个语句的所有元素逐行输出给i
list=[**'jack'**,**'rose'**,**'bell'**,**'john'**]
**for**num **in**list:
print(**'正在输出'**,num)
#输出1到100 第一个1是初始值 101是末尾值 第二个1是步值(步长) 如果步长是1,可以省略不写;
**for**i **in**range(1,101,1): #range(初始值,末尾值,步长) 步长是可以省略的,默认是1
print(i,end=**''**)
#输出100-1
**for**i **in**range(100,0,-1):
print(i,end=**''**)
#输出1到100 步长为1时可省略不写
**for**i **in**range(1,101):
print(i,end=**''**)
#while循环
num=1#在while循环中,首先需要设定初始值
**while**num<101:#循环值(末始值,条件)
print(num)
num=num+1
#输出偶数 偶数:能被2除尽的
num=2
**while**num<101:
print(num)
num=num+2
num=1
**while**num<1001:
**if**num%2 ==0:#如果num的值除以2等于0就去打印
print(num)
num=num+1
num=input(**'请输入:'**)#input会强制转换输入内容为字符串型
print(type(num))#判断输入的字符类型,输出num变量的类型
list=[1223,**'admin'**]
aaa=(**'rose'**,9000)
dict1={**'name'**:**'jack'**,123:456}
#输出num的变量类型
print(type(list))
print(type(aaa))
print(type(dict1))
num=input(**'请输入:'**)
print(type(num))
print(type(int(num)))
print(type(980))
print(type(str(980)))
# 1.求和1-100的和
# 2.求和1+1/2+1/3+···+1/100的何
# 3.求和1-100的偶数和
# 4.判断输入的年份是否为闰年:
# #闰年的条件是:一:能被4整除,但不能被100整除的年份(例如2008是闰年,1900不是闰年)
# #二:能被400整除的年份(例如2000年)也是闰年。
# 5.任意输入一个整数,求这个数的阶乘.【0的阶乘是0,负数没有阶乘】
# 即:n!=1×2×3×...×n。注意0的阶乘为0,负数没有阶乘
# 1.求和1-100的和
# num=1
# sum=0
# while num<101:
# sum=sum+num
# num=num+1
# print(sum)
#sum=0 num=1
# sum=0+1 num=2
# ...
# sum=0+1+...99 num=100
# sum=0+1+...100 num=101
# 2.求和1+1/2+1/3+···+1/100的和
# a=1
# sum=0
# while a<101:
# sum=sum+1/a
# a=a+1
# print(sum)
#sum=0 a=1
#sum=0+1 a=2
#sum=0+1+1/2+..+1/100 a=101
# 3.求和1-100的偶数和
# a=1
# sum=0
# while a<101:
# if a%2==0:
# sum=sum+a
# a=a+1
# print(sum)
#a=1 sum=0
# a=2 sum=0+2
# a=4 sum=0+2+4
# a=100 sum=0+2+4+...+100
# 4.判断输入的年份是否为闰年:
# #闰年的条件是:一:能被4整除,但不能被100整除的年份(例如2008是闰年,1900不是闰年)
# #二:能被400整除的年份(例如2000年)也是闰年。
# year=int(input('请输入年份:'))
# if year%4==0 and year%100!=0 or year%400==0:
# print("输入的年份为闰年")
# else:
# print("输入的年份为平年")
# 5.任意输入一个整数,求这个数的阶乘
# 即:n!=1×2×3×...×n。注意0的阶乘为0,负数没有阶乘
# a=int(input('请输入一个数字:'))
# n=1
# b=1
# while b<=a:
# n=n*b
# b=b+1
# print(n)
# if a<0:
# print('负数没有阶乘')
# elif a==0:
# print('0的阶乘为0')
#break continue pass 三个的使用方法
# for i in 'python':
# if i=='h':
# continue #结束本次循环执行下次循环
# print('正在输出:',i)
# for i in 'python':
# if i=='h':
# break #跳出当前的循环体
# print('正在输出:',i)
# for i in 'python':
# if i=='h':
# pass #在if判断里面,pass表示通过 占位 什么也不执行
# print('正在输出:',i)
#break continue pass
#1.break 表示跳出当前的循环体
#2.continue 表示终止本次循环,继续执行下次循环
#3.pass 表示占位 什么也不执行
#自定义函数
#return 返回 必须带上返回值的
#函数名字最好可以表示出来是需要做什么的,不可为汉字和数字
**def**add(a,b):#add(a,b)是自己定义的一个函数,可以为任何名字括号内值可以为任何数值
**return**a+b
num=add(1,4)
print(num)
#自定义类 dd. dd.中的点事调用类里面的函数
#self 是把变量变成共有的变量,在使用时self就代表这个,类的本身
**class**define():
mm=5 #在整个类里都可以使用
**def**add(self,a,b):#当函数添加的到类的时候,必须要带上self
self.a=a#把变量a变成共有的变量,可以在整个类里面使用
self.b=b
**return**self.a+self.b
**def**jian(self,a,b):#减法
self.a=a
self.b=b
**return**self.a-self.b
dd=define()#类的实例化
print(dd.add(100,200))
#类的继承
**class**dog(define):
**def**cheng(self,a,b):
**return**a*b
**def**add(self,a,b):
**return**a+b+1
**class**cat(dog):
**def**chu(self,a,b):
**return**a/b
c=cat()
#类的继承#子类继承父类可以拥有父类所有的属性
#如果子类和父类的函数名相同,相当于子类修改原来父类的函数
#类的继承允许多级继承,即父类A,子类B,孙子类C B继承A拥有A的所有属性和B类自己的属性,C继承B,拥有爷爷类A和父类B的所有属性以及自己的属性
#类的继承
1.子类继承父类 子类就拥有父类的所有属性(方法以及变量)
2.子类继承父类后 若子类里有与父类相同的函数名 则子类的函数
会对父类的函数进行重写
3.子类可以继承多个父类
4.继承可以允许多级继承
#try except exception 把可能出现异常的代码给抛出,同时允许下面的代码运行
a=10
b=0
**try**:
c=a/b
**except**Exception **as**e:
print(e)
**for**i **in 'python'**:
print(i)
#装饰器 time 对时间的管理词汇
**import**time
**def**f():
print(**'hello'**)
time.sleep(1)
print(**'world'**)
**def**deco():
start_time=time.time()
f()
end_time=time.time()
exec_time=(end_time-start_time)*1000
print(**'执行时间:%d'**%exec_time)
deco()
#装饰器本质上是一个python函数,它可以让其他函数在不需要变动
#任何代码的前提下增加额外功能
#概括的说,装饰器的作用就是为已经存在的函数增加额外的功能
#装饰器
**import**time #time 是一个文件,里面写好了时间格式
**def**f():
print(**'hello'**)
time.sleep(1)
print(**'world'**)
**def**deco():
a=time.strftime(**'%Y-%m-%d %H-%M-%S'**)#时间戳 strftime 是把当前时间格式化成年月日时分秒的格式
print(a)
f()
b=time.strftime(**'%Y-%m-%d %H-%M-%S'**)
print(b)
deco()
#对于文件的一些处理 r 只读 r+ 可读可写
#r 以只读的方式打开,文件的指针将会放在文件开头
#r+ 以读写的方式打开,文件指针将会放在文件开头
fp=open(**'foo.txt'**,**'r'**,encoding=**'utf-8'**) #打开文件foo.txt
str=fp.read()
print(str)
fp.close()#关闭
fp=open(**'foo.txt'**,**'r'**,encoding=**'utf-8'**)
fp.write(**'test001'**)
fp.close()
#w 只用于写入,如果文件不存在则创建文件,如果存在则会覆盖原有文件
fp=open('foo2.txt','w')
fp.write('hello')
fp.close()
#w+用于读写,如果文件不存在则创建文件,如果存在则会覆盖原有文件
fp=open('foo2.txt','w+'**,encoding=**'utf-8')#输入汉字时需加encoding='utf-8'
fp.write('enen')
fp.close()
#a 打开文件并在文件末尾追加内容,如果文件存在,则文件指针
#会放在文件的结尾。
#如果文件不存在,则会创建新的文件并写入进去内容
fp=open('foo3.txt','a')
fp.write('12346546')
fp.close()
fp=open('foo6.txt','a+')
fp.write('12346546')
fp.close()
#os 是一个文件,里面有很多函数
import os
print(os.getcwd())#os.getcwd 显示文件当前的路径
1.求九九乘法表### 
1.
i=1
while i<=9:
j=1
while j<=i:
print('%d * %d =%d '%(i,j,i*j),end='')
j=j+1
print()#自动换行
i=i+1
**2.**
for x in range(1,10):
print()
for y in range(1,1+x):
print('%s*%s=%s'%(x,y,x*y),'','',end='')
print()
#3.倒着输出乘法口诀表
i=10
while i>0:
print()
i=i-1
for y in range(1,1+i):
print('%s*%s=%s'%(y,i,i*y),'','',end='')
2.输出1-100的质数(除1和本身不能被其他数整除的)
i=2 #最小的质数是2
while i<=100:
k=1
j=2
while j<i:
if i%j==0:
k=0
break#跳出当前循环体
j=j+1
if k==1:
print(i,' ',end='')
i=i+1
第二种方法:
for a in range(2,101):#因为最小的质数是2,条件是在100以内
#的所有质数
for b in range(2,a):#b的值要小于a的值
if a%b==0:#当a%b的余数为零的时
break#就跳出当前循环
else:
print(a)#否则就输出当前的值
3.list=[1,8,2,6,3,9,4] 将列表按照从小到大顺序排序输出[1,2,3,4,6,8,9]
list=[1,8,2,6,3,9,4]
i=1
while i<=6:
j=0
while j<=6-i:
if list[j]>list[j+1]:
list[j],list[j+1]=list[j+1],list[j]
j=j+1
i=i+1
print(list)
0 1 2 3 4 5 6
list=[1,8,2,6,3,9,4]
i=1 #(共循环六次的初始值)
while i<=6: #(小于等于6的值都要进行下一次循环)
j=0 #(0是代表切片的初始值)
while j<=6-i:#每次内循环都找出一个最大数,所以每一次比较需要去见一次循环
if list[j]>list[j+1]:#如果[j]小于[j+1]则不满足条件
list[j],list[j+1]=list[j+1],list[j]
j=j+1
I=I+1
print(list)
详细解析:
list=[1,8,2,6,3,9,4]
i=1 #(共循环六次的初始值)
While i<=6: #(小于等于6的值都要进行下一次循环)
j=0 #(0是代表切片的初始值)
While j<=6-i:#每次内循环都找出一个最大数,所以每一次比较需要去见一次循环
if list[j]>list[j+1]:#如果[j]小于[j+1]则不满足条件
list[j],list[j+1]=list[j+1],list[j]
print(‘**内循环第**%d**轮,第**%d**次交换后**list=%s’%(i,j+1,list))
j=j+1
print(‘**外循环第**%d**次循环后**list=%s’%(i,list))
I=I+1
内循环第1轮,第1次交换后list=[1, 8, 2, 6, 3, 9, 4]
内循环第1轮,第2次交换后list=[1, 2, 8, 6, 3, 9, 4]
内循环第1轮,第3次交换后list=[1, 2, 6, 8, 3, 9, 4]
内循环第1轮,第4次交换后list=[1, 2, 6, 3, 8, 9, 4]
内循环第1轮,第5次交换后list=[1, 2, 6, 3, 8, 9, 4]
内循环第1轮,第6次交换后list=[1, 2, 6, 3, 8, 4, 9]
外循环第1次循环后list=[1, 2, 6, 3, 8, 4, 9]
内循环第2轮,第1次交换后list=[1, 2, 6, 3, 8, 4, 9]
内循环第2轮,第2次交换后list=[1, 2, 6, 3, 8, 4, 9]
内循环第2轮,第3次交换后list=[1, 2, 3, 6, 8, 4, 9]
内循环第2轮,第4次交换后list=[1, 2, 3, 6, 8, 4, 9]
内循环第2轮,第5次交换后list=[1, 2, 3, 6, 4, 8, 9]
外循环第2次循环后list=[1, 2, 3, 6, 4, 8, 9]
内循环第3轮,第1次交换后list=[1, 2, 3, 6, 4, 8, 9]
内循环第3轮,第2次交换后list=[1, 2, 3, 6, 4, 8, 9]
内循环第3轮,第3次交换后list=[1, 2, 3, 6, 4, 8, 9]
内循环第3轮,第4次交换后list=[1, 2, 3, 4, 6, 8, 9]
外循环第3次循环后list=[1, 2, 3, 4, 6, 8, 9]
内循环第4轮,第1次交换后list=[1, 2, 3, 4, 6, 8, 9]
内循环第4轮,第2次交换后list=[1, 2, 3, 4, 6, 8, 9]
内循环第4轮,第3次交换后list=[1, 2, 3, 4, 6, 8, 9]
外循环第4次循环后list=[1, 2, 3, 4, 6, 8, 9]
内循环第5轮,第1次交换后list=[1, 2, 3, 4, 6, 8, 9]
内循环第5轮,第2次交换后list=[1, 2, 3, 4, 6, 8, 9]
外循环第5次循环后list=[1, 2, 3, 4, 6, 8, 9]
内循环第6轮,第1次交换后list=[1, 2, 3, 4, 6, 8, 9]
外循环第6次循环后list=[1, 2, 3, 4, 6, 8, 9]
list=[1,8,2,6,3,9,4]
i=1 #(共循环六次的初始值)
While i<=len(list)-1: #(小于等于6的值都要进行下一次循环)
j=0 #(0是代表切片的初始值)
While j<=len(list)-1:#每次内循环都找出一个最大数,所以每一次比较需要去见一次循环
If list[j]>list[j+1]:#如果[j]小于[j+1]则不满足条件,交换小于号则变成由大到小排列
list[j],list[j+1]=list[j+1],list[j]
print('**内循环第**%d**轮,第**%d**次交换后**list=%s'%(i,j+1,list))
j=j+1
print('**外循环第**%d**次循环后**list=%s'%(i,list))
i=i+1
博客来源:雨夜的博客