一、基础知识
#1、标准输入输出函数:
print(“字符串”)
input(“请输入提示信息:”)
#2、变量:(在程序运行中,可以发生变化的量:更加灵活的参与运算)
变量的定义
变量名称=变量值(变量值属于什么类型,赋予对于的数据类型–弱数据类型)
弱数据类型:python Javascript
强数据类型:c c++ c# java
变量命名规则
(1)变量名称只能是大小写字母 数字 下划线
(2)数字不可以开头
(3)不能使用关键字或者保留字
(4)变量命名有意义(可读性要高)—推崇下划线命名法 也可以使用小驼峰法(大驼峰法是给类命名的)
#3、数据类型:
基本数据类型:
(1)数值型-number
int整数型 long长整型 float浮点型 complex复数
(2)字符串-string
单引号 双引号 三引号 注意对应前后即可
(3)布尔-boolean
True真 False假 (关键字-代表两种状态)
复合数据类型(引用|对象): 没办法使用简单的数据类型表示的数据类型
list、tuple、set、dict、对象……
#4、全局函数:
print #标准输出函数
input #标准输入函数
int #将字符串转化为整型
str #将字符串转化为字符串
float #将字符串转化为浮点型
type #返回变量对应的类型
#5、运算符:
(1)算术运算符:
+ - * / %(求余数。求模) //(地板除法-整除) **(求幂次方)
(2)赋值运算符:
= a=10
+= a=a+10
-= *= /= //=
(3)关系运算符:
> < >= <= == != (返回一个bool值)
(4)逻辑运算符:
and-并 or-或 not-取反
注:python中没有自增自减运算符,使用+=或 -=来代替
#6、数据输出的格式:
print("您的年龄是:%s" %age) #%s的位置输出age的值
print("您的年龄是:%s,我爹的年龄是:%s" %(age,a)) #此时第一个%s将会附上age的值,第二个%s将附上a的值
注:在Windows以外的平台(Linux)运行py程序,需要在最前面加上平台注释
#!/usr/bin/python用来指定用什么解释器运行脚本,以及解释器的位置
#7、python中的空值:
>>> a = None
>>> print(a)
None
>>> print(type(a))
<class 'NoneType'>
#8、关键字和保留字: python中有特殊含义的单词或词组
(1)查看python中的关键字—导入模块,查看模块中可用的变量、方法、类、常量等
>>> import keyword(可以将keyword重命名为kw,之后使用keyword的时候即可使用kw代替:import keyword as kw)
>>> dir(keyword)
['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'iskeyword', 'kwlist', 'main']
#类似双下划线的表示特殊作用的变量
keyword.kwlist #返回一个列表
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
(2)全局函数
dir(模块名称) #用来查看模块中的变量、方法、类、常量等。例如dir(keyword)
help(方法名称) #查看方法的使用规则、帮助文档。例如help(math.ceil)
round() #四舍五入
sorted(可迭代的对象) #产生排序,但是原来的值不发生改变
print
input
len
max
min
range #传递一个值,默认表示取一个区间内的整数,从0开始;或者range(x,y),前闭后开区间[x,y)
二、选择结构-单分支、双分支、多分支
顺序 :代码都是从左到右,从上到下执行多个语句之间,且python是强制缩进的语言
#1、选择结构 单分支、双分支、三分支(多分支)
(1)单分支:(一般只适用于一种极限情况)
age = input(“请输入您的年龄:”)
age = int(age)
if age > 18:
print(“您可以干一些成年人干的事儿了”)
eg:if 条件:
#条件成立之后执行的代码(可写多条代码,需要严格缩进)
(2)双分支:(多种极限情况)
age = input(“请输入您的年龄:”)
age = int(age)
if age > 18:
print(“您可以干一些成年人干的事儿了”)
else:
print(“你还没有成年”)
eg:if 条件:
#条件成立之后执行的代码
else:
#条件成立执行的代码
(3)三分支(多分支):
if condition:
#符合条件1,执行本行代码
elif condition:
#符合条件2,执行本行代码
elif condition:
#符合条件3,执行本行代码
……
else:
#剩余其他条件
#2、循环的使用
#While 条件:
#循环体
#for循环(for in 循环)
for 变量 in 可迭代对象
#3、复合数据类型—list(底层实现是使用链表)—python是弱数据类型—由赋的值确定数据类型
(1)得到一个列表
变量名称 = []
变量名称 = [1,2,4,5,89]
(2)得到全局函数list构造一个列表
变量名称 = list() #得到一个空列表
变量名称 = list([1,2,3,6,78,89]) #如果list中有参数,则必须是一个列表
#4、常用方法
in #判断一个元素是否在一个列表中
list.append(值) list.pop(值) #在列表最后一位添加/删除元素
clear() #清空列表
insert(index,值) #指定位置插入数据,append的本质--insert
remove() #移除(通过数值移除)元素不在列表中会报错
reverse() #翻转列表
sort() #排序,该方法只能用于元素为同一类型的列表
len(list) #元素个数
list[len(list) - 1] #下标最大值
注:可以使用下标的方式对列表进行访问(首元素:列表名称[0],以此类推),并且可以存不同数据类型的元素。
#5、math以及random使用
math模块:系统提供了一系列关于数学运算的方法
import math
math.ceil() #向上取整
math.floor() #向下取整
math.sin()
math.cos()
math.tan()
math.pi #求PI的值
math.e #求e的值
math.pow() #幂次方
math.sqrt() #开根号
#6、随机数random模块
import random
random.randint(x,y) #全闭区间,int值
random.random() #取一个[0,1)随机数,前闭后开区间
random.choice([1,2,3,45,6]) #从容器中随机取出一个元素
注:python中空格跟Tab混用会报错,注意不要混用!且python中没有do …… while循环
练习1:
list1 = ["la","be","ci","de"]
#循环遍历列表---for方法
for x in list1:
print(x)
#循环遍历列表---while方法
index = 0
while index < len(list1):
print(list1[index])
index += 1
练习2:
求和(包括奇、偶求和,求积)
#使用for循环完成0-100的和(需要使用新的全局函数)range
sum = 0
for i in range(101):
sum += i
print(sum)
#----------------------------------------------------------------------------------
#使用for循环完成10-100的和(需要使用新的全局函数)range
sum = 0
for i in range(10,101):
sum += i
print(sum)
#----------------------------------------------------------------------------------
#使用for循环完成0-100的偶数和(需要使用新的全局函数)range
sum = 0
for i in range(101):
if i%2 == 0
sum += i
print(sum)
#另一种方法求0-100的偶数和
sum = 0
for i in range(0,101,2): #(第三个参数代表的步长,即此时i的值为偶数)
sum += i
print(sum)
#----------------------------------------------------------------------------------
#使用for循环完成0-100的奇数和(需要使用新的全局函数)range
sum = 0
for i in range(101):
if i%2 == 1
sum += i
print(sum)
#另一种方法求0-100的奇数和
sum = 0
for i in range(1,100,2): #(第三个参数代表的步长,即此时i的值为奇数)
sum += i
print(sum)
#----------------------------------------------------------------------------------
#求奇数的乘积(for循环)
sum = 1
for i in range(3,100,2):
sum *= i
print(sum)
#----------------------------------------------------------------------------------
#计算1-20之间所有数字的乘积
index = 1
sum = 0
while index < 20:
if index ==10:
#break关键字表示打断,终止循环,当index值为10时终止循环
break
sum *= index
index += 1
#python中存在循环之后再执行else
else:
print("1-20乘积为",sum)
#else是循环正常结束之后才执行的,否则不执行
#----------------------------------------------------------------------------------
#验证continue以及break(continue代表跳过本次循环、break代表终止循环)
i = 0
while i < 100:
i += 1
if i == 50:
#continue
break
else:
print(i)
else:
print("循环正常结束")
print("程序结束")
练习3:
需求:请输入您的成绩,做出及格判断
如果是0分,直接输出0分;0-60,不及格;60-80,良好;80-99,优秀;100,很棒
score = int(input("请输入您的成绩:"))
#使用单分支、多分支组合的方法进行编写,有点繁琐
if score > 100 or score < 0:
print("您输入的成绩不合法")
else:
if score == 0:
print("0分,辣鸡")
else:
if score > 0 and score < 60:
print("不及格")
else:
if score >=60 and score < 80:
print("及格")
else:
if score >=80 and score < 90:
print("优秀")
else:
if score >=90 and score < 100:
print("很优秀")
else:
print("满分")
练习4:
输入两个数求它们的和并输入
#此处并未对输入的字符做判断,默认输入合法字符进行运算
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
print("%s + %s = %s"%(num1,num2,(num1+num2)))
练习5:
输入长方形的长、宽。判断是否合法,之后计算周长和面积
长方形.py
#接受参数
width = int(input("请输入矩形的长(单位,米):"))
height = float(input("请输入矩形的高(单位,米):"))
#数据校验
if width <= 0 or height <=0 :
print("对不起,您输入的有误")
#计算面积
else:
area = width * height
around = 2 * (width + height)
print("长方形的面积为%s"%area)
print("长方形的周长为",around)
练习6:
9x9乘法表( print(“ajhdka”,end="")可以使输出不换行 )
#打印9×9乘法表,使用双重循环。外层循环控制行,内层循环控制列
for x in range(1,10):
for y in range(1,x+1):
res=x*y
if res > 9:
print("%s X %s = %s" %(y,x,res),end=" ")
else:
print("%s X %s = %s" %(y,x,res),end=" ")
print("")
练习7:
打印*,各种形状
#打印菱形*号
layer = int(input("请输入要打印的层数:"))
for x in range(1,layer+1):
space_num = layer - x
for y in range(0,space_num):
print(" ",end="")
#先打印空格,再打印*号
star_num = 2*x - 1
for y in range(0,star_num):
print("*",end="")
#换行
print("")
for x in range(layer - 1, 0 , -1):
space_num = layer - x
for y in range(0,space_num):
print(" ",end="")
#先打印空格,再打印*号
star_num = 2*x - 1
for y in range(0,star_num):
print("*",end="")
#换行
print("")
#----------------------------------------------------------------------------------
#打印直角*号
layer = int(input("请输入要打印的层数:"))
for x in range(1,layer+1):
for y in range(1,x+1):
print("*",end = " ")
print("")
#----------------------------------------------------------------------------------
#打印等腰*号
for x in range(1,layer+1):
space_num = layer - x
for y in range(1,space_num+1):
print(" ",end="")
#先打印空格,再打印*号
star_num = 2*x - 1
for y in range(0,star_num):
print("*",end="")
#换行
print("")
#----------------------------------------------------------------------------------
#打印空心菱形
layer = int(input("请输入要打印的层数:"))
for x in range(1,layer+1):
space_num = layer - x
for y in range(0,space_num):
print(" ",end="")
#先打印空格,再打印*号
star_num = 2*x - 1
for y in range(0,star_num):
if y == 0 or y == star_num-1:
print("*",end="")
else:
print(" ",end="")
#换行
print("")
for x in range(layer - 1, 0 , -1):
space_num = layer - x
for y in range(0,space_num):
print(" ",end="")
#先打印空格,再打印*号
star_num = 2*x - 1
for y in range(0,star_num):
if y == 0 or y == star_num-1:
print("*",end="")
else:
print(" ",end="")
#换行
print("")
作者:苏小酱