入门学习python
pep8中文下载(代码官方格式)
运算符:+ - * / (加减乘除)
// 取整除 % 取余数 ** 乘方
pycharm的快捷键:
Ctrl + / 批量注释
Ctrl + z 撤销
选中一片代码,按tab键,可以批量缩进,按shift + tab键可以取消缩进
一行过长的语句可以使用反斜杠或者括号分解成几行,不妨试试:
1. >>> 3 > 4 and \
2. 1 < 2
复制代码
或者
1. >>> ( 3 > 4 and
2. 1 < 2 )
复制代码
注释:(1)、单行注释 #
(2)、多行注释
”””
”””
变量类型(数据类型):
注意:Python定义变量时不需要指定类型,Python会根据 = 右侧的值自动推导变量类型
数字型
数字型可以直接进行四折运算
int: 整形,即整数类型
bool: 布尔类型,表示true(非零)或者false(0)
float: 浮点型,表示有小数点的数字
complex:复数型,用于科学计算
非数字型
字符串:str : 字符串类型,表示文字等,命名时必须使用” ”
字符串可以进行相加运算“” + “”
字符串可以与整数进行相乘 “” * int
列表
元组
字典
查看变量类型: type(name)
函数
Input实现键盘输入
Input :输入的数据类型是str类型的变量
表达格式:字符串变量 = input(“提示信息:”)
类型转换函数
Int(x) 可以把x字符串转化为整数
float(x) 可以把x字符串转化为浮点数
price =float(input("苹果单价:"))
weight = float(input("苹果重量:"))
money = price *weight
print(money)
变量的格式化输出
% 为格式化操作符,专门处理字符串的格式
%s 字符串
%d 整数,%06d表示输出的整数显示位数,不足的地方使用0补全 (数字6可以修改)
%f 浮点数, %.02f表示显示小数点后两位 (数字2可以修改)
%% 输出%
price = float(input("请输入苹果单价:"))
weight = float(input("请输入苹果重量:"))
money = price * weight
print('苹果单价%.01f,购买了%.02f,需要支付%.02f元'%(price,weight,money))
# 百分号的输出例子
scale = 0.25
print("数据比例是%.2f%%" % (scale * 100))
# 此处有两个格式化变量依次为25 % ,
# 所以要依次输出两个变量 %.2f 先显示出数字,
# 然后%% 显示出%,后面括号里的变量 * 100 是因为去掉%的除号作用
变量命名
标识符(只能用数字字母 下划线组成,而且不能以数字开头),标识符就是变量名
关键字:py内部的标识符,具有特殊功能
查看关键字:import keyword
>>> print(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']
变量命名规则:
1、 区分大小写
2、 如果变量有多个单词组成时各个单词都使用小写,单词之间用 _ 下划线连接,
如qq_number
判断语句(if)又称分支语句
格式:
# 定义一个整数变量记录年龄
age = 18
# 判断是否满18
if age >= 18:
# 入果满了18岁,就可以进网吧嗨皮
print("你已经成年,欢迎进网吧嗨皮")
比较运算符:
== 检查两边是否相等,如果是返回True
!= 检查两个操作数的值是否相等,如果是,这条件成立,返回True
> < >= <=
缩进:
If语句以及缩进部分是一个完整的代码块 (如果有多个缩进,都属于if语句的管理)
如果没有缩进则跳出来if语句的管理
# 定义一个整数变量记录年龄
age = 15
# 判断是否满18
if age >= 18:
# 入果满了18岁,就可以进网吧嗨皮
print("你已经成年,欢迎进网吧嗨皮")
print("欢迎欢迎")
print("游戏结束")
else的格式:
if 要判断的条件:
条件成立时,要做的事情
…
else:
条件不成立时,要做的事情
…
# 定义一个整数变量记录年龄
age = int(input("今年多大?"))
# 判断是否满18
if age >= 18:
# 入果满了18岁,就可以进网吧嗨皮
print("你已经成年,欢迎进网吧嗨皮")
print("欢迎欢迎")
else:
print("你还没长大,回家写作业")
print("赶紧离开")
# 这句代码无论条件是否成立都会执行
print("游戏结束")
逻辑运算:
逻辑运算符:(and or not)可以把多个条件按照逻辑进行连接,变成更复杂的条件。
and 运算符:与/并且,当两个条件同时满足,返回true。只要有一个不满足就返回false
or 运算符:或/或者,两个条件只要有一个成立,返回true。两个条件都不满足,返回false
not 运算符:取反。not + 条件。 非/不是,
if进阶:elif
holiday_name = "平安夜"
if holiday_name == "情人节":
print("买玫瑰")
print("看电影")
elif holiday_name == "平安夜":
print("买苹果")
print("吃大餐")
elif holiday_name == "生日":
print("买蛋糕")
else:
print("每天都是节日")
if的嵌套
elif的应用场景是:同时判断多个条件,所有条件是平级的
if的嵌套是一个条件进行判断的前提是,前一个条件成立。
语法格式
has_ticket = True
knife_length = 10
if has_ticket:
print("车票检查通过,准备开始安检")
if knife_length> 20:
print("你携带的刀太长,有%d厘米" % knife_length)
print("不允许上车")
else:
print("安检通过,祝你旅途愉快!")
else:
print("大哥,请先买票")
随机数的生成
要使用工具包,首先要导入工具包(产生随机数的工具包) 导入工具包时应该放在所有代码顶部,方便后面程序的读取
import random
导入后再输入random. 然后再按tab键,弹出多个函数进行选择。
randint是产生随机整数
例如:random.randint(12,20) # 会生成随机数n:12 <= n<= 20
下限必须小于上限
程序三大流程:
顺序:从上到下,顺序执行代码
分支:根据条件判断,决定执行代码的分支 (if)
循环:让特定代码重复执行
循环
# 打印五遍 hollo python
# 定义一个整数变量,记录循环次数
i = 1
# 开始循环
while i <= 5:
# 1> 希望在循环内执行的代码
print("hellopython")
# 2> 处理计数器
i = i + 1
死循环产生原因:计数器没有添加
赋值运算符:
= 赋值
+= 加法赋值
-=
*=
/=
//= 取整赋值
%= 取余赋值
**= 幂赋值
程序计数方法
# 打印五遍 hollo python
# 定义一个整数变量,记录循环次数
i = 0
# 开始循环
while i < 3:
# 1> 希望在循环内执行的代码
print("hellopython")
# 2> 处理计数器
#i = i + 1
i += 1
print("循环结束,输出%d" % i)
循环计算
# 计算1-100 的累加求和结果
# 定义一个整型变量记录循环次数
i = 0
# 定义最终结果变量
result = 0
# 开始循环
while i <= 100:
# print(i)
# 每一次循环,都让result和i这个计数器相加
result += i
# 处理计数器
i += 1
print("0-100相加结果是%d" %result)
0-100偶数相加
# 计算0-100之间所有偶数求和结果
# 开发步骤
#
# 1、编写循环 确认要处理的数字
# 2添加结果变量,在内部处理计算结果
# 定义一个记录最终结果的变量
result = 0
# 准备循环
i = 0
while i <= 100:
#判断变量i中的数值是否是偶数
if i % 2 == 0:
print(i)
result += i
i += 1
print("输出结果%d" % result)
break 与cotinue
i = 0
while i < 10:
#continue 某条件满足时,不执行后续代码,其余条件满足时,继续执行后续代码
# i == 3
if i == 3:
# 注意:在循环中,如果使用continue这个关键字
# 在使用之前,需要确认循环的计数是否修改,
# 否则可能造成死循环
i += 1
continue
print(i)
i += 1
while循环嵌套
画小星星
# 打印连续五行*,每行*依次递增
#*
#**
#***
#****
#*****
# 1、定义一个计数器变量,从数字一开始,循环比较方便
row = 1
# 2开始循环
while row <= 5:
print("*" *row)
row += 1
print函数的一个增强:
默认情况下,print函数输出内容时,会在末尾增加换行
如果不希望在末尾增加换行,可以在print函数输出内容后面增加 ,end=””
其中””中间可以指定print函数输入内容后,继续希望显示的内容
# 在默认情况下,print函数输出内容后,会自动在内容末尾增加换行
print("*", end="da")
print("*")
while循环嵌套
# 需求:
# 连续输入五行小星星*,而且每行比前一行多一个*
# 开发步骤
# 1> 完成五行内容的输出
# 2> 分析每行内部 * 应该如何处理
row = 1
while row <= 5:
# 每一行打印的星星与行数相同
# 增加一个小的循环,专门负责当前行中,每一列的星星显示
# 定义一个列的计数器变量
col = 1 # 列
#开始循环
while col <= row:
#print("%d" %col)
print("*", end="")
col += 1
#print("第 %d 行" %row)
#这行代码的目的,就是在一行星星输出后,在末尾增加换行
print("")
row += 1
打印九九乘法表: (由打印小星星演变而来)
# 打印九行小星星
row = 1
while row <= 9:
col = 1
while col <= row:
#print("*",end="")
print("%d * %d =%d" % (col, row, col * row), end=" ")
col += 1
#print("%d" %row)
print("")
row += 1
修改后,打印结果对齐了
# 打印九行小星星
row = 1
while row <= 9:
col = 1
while col <= row:
#print("*",end="")
# \t 在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐
print("%d * %d =%d" % (col, row, col * row), end="\t")
col += 1
#print("%d" %row)
print("")
row += 1
字符串中的转义字符
\t 在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐
制表符的功能是在不使用表格的情况下在垂直方向按列对齐文本
\n 在控制台输出一个换行符
# \t 在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐
print("1\t2\t3")
print("10\t20\t30")
# \n 在控制台输出一个换行符
print("hello\n python")
# 一个\可以使"单独输出来
print("hello\"hello")
函数:
定义格式:
def 函数名():
函数封装的代码
。。。
def multiple_table():
# 打印九行小星星
函数调用:
直接通过输入 函数名() 即可完成调用
# 注意:定义好函数后,只表示这个函数封装了一段代码而已
# 如果不主动调用函数,函数是不会主动执行的
def say_hello():
print("hello1")
print("hello2")
print("hello3")
say_hello()
函数调试:(debug)
f8: 对一般的代码进行调试
f7: 对封装好的函数内部进行调试(使用f8不能对函数内部进行调试)
函数参数的使用
在函数名后面的小括号内填写参数
多个参数之间用, 分隔
def sum_2_num(num1, num2):
"""对两个数字的求和"""
result = num1 +num2
print("%d + %d =%d " %(num1, num2, result))
sum_2_num(20, 30)
形参和实参
形参:定义函数时,小括号中的参数,用来接收参数用的,在函数内部作为变量使用
实参:调用函数时,小括号内的参数,是用来把数据传递到函数内部的
实例:如上一页的num1 num2就是形参,20 30就是实参
函数的返回值:
(使用return进行返回函数计算结果,函数外部使用一个变量对return返回值进行接收)
def sum_2_num(num1, num2):
"""对两个数字的求和"""
result = num1 +num2
return result
# 可以使用变量来接收函数执行的返回结果
sum_result = sum_2_num(20, 30)
print("计算结果:%d" % sum_result)
注意:return 表示返回,后续的代码都不会被执行
函数的嵌套调用:
一个函数里边又调用另外一个函数
def test1():
print("*" * 50)
def test2():
print("-" * 50)
# 函数的嵌套调用
test1()
print("+" * 50)
test2()
打印多条分隔线
def print_line(char, times):
print(char * times)
# print_line("*", 20)
def print_lines():
i = 0
while i < 5:
print_line("-", 20)
i += 1
print_lines()
使用模块(工具包)中的函数
以py扩展名结尾的Python文件就是一个模块
使用import导入,导入后,就可以使用 模块.变量/模块.函数的方式,使用这个模块中定义的变量或函数
高级变量
列表(list):
使用一个变量储存多个数据,列表用[]定义,数据之间使用,分隔
列表的索引从0 开始
列表基本使用:
name_list = ["张三", "李四", "王五"]
# 1.取值于取索引
print(name_list[0])
# 知道数据内容,想确定数据在列表位置,使用index取出索引
print(name_list.index("李四"))
# 2.修改
name_list[1] = "大傻逼"
# 3.增加
# append方法可以向列表末尾追加数据
name_list.append("王小二")
# insert 方法可以在列表的指定索引位置插入数据
name_list.insert(1, "小美眉")
# extend 方法可以把其他列表中的完整内容,追加到当前列表末尾
temp_list = ["孙悟空", "猪八戒", "沙师弟"]
name_list.extend(temp_list)
# 4.删除
# remove 方法可以从列表中删除指定数据
name_list.remove("王五")
# pop方法默认可以把列表中最后一个元素删除
name_list.pop()
# pop可以指定要删除元素的索引
name_list.pop(3)
# clear 方法可以清空列表
name_list.clear()
print(name_list)
del关键字:
name_list = ["张三", "李四", "王五"]
# 使用del关键字(delete)删除列表元素
del name_list[1]
# del 关键字本质上是用来将一个变量从内存中删除,因为del了name变量,所以会报错
name = "小明"
del name
print(name)
print(name_list)
列表数据的统计:
name_list = ["张三", "李四", "王五", "张三"]
# len (length长度)函数可以统计列表中的元素总数
list_len = len(name_list)
print("列表中包含 %d 个元素" % list_len)
# count 方法可以统计列表中某一个数据出现的次数
count = name_list.count("张三")
print("张三出现了 %d 次" % count)
列表的排序:
name_list = ["zhangsan", "lisi", "wangwu"]
num_list = [6, 8, 4, 1, 10]
# # 升序
# name_list.sort()
# num_list.sort()
# # 降序
# name_list.sort(reverse=True)
# num_list.sort(reverse=True)
# #反转
# name_list.reverse()
# num_list.reverse()
print(name_list)
print(num_list)
Python关键字与函数:
关键字:在终端中输入:
>>> import keyword
>>> print(keyword.kwlist)
循环遍历(for):
name_list = ["张三", "李四", "王五", "王小二"]
# 使用迭代遍历列表
"""
顺序的从列表中以此获取数据,每一次循环过程中,数据都会依次保存在
my_name 这个变量中,在循环体内部可以访问到当前这一次获取到的数据
for my_name in 列表变量:
print("我的名字叫 %s" %my_name)
"""
for my_name in name_list:
print("我的名字叫 %s" % my_name)
元组(tuple):
与列表相似,但元组使用()定义,数据之间用,分隔,,元组一旦定义就不可以修改,索引也是从0 开始
元组的常用操作:在终端中定义一个元组,例如,info = ()
输入info. 按下tab键,就会弹出元组能够使用的函数
info_tuple = ("小明", 18, 1.85)
# 格式化字符串后面的‘()’本质上就是元组
print("%s年龄是%d,身高是%.2f" % ("小明", 18, 1.85))
print("%s年龄是%d,今年%.2f" % info_tuple)
# 本质上就是一个字符串
info_str = "%s年龄是%d,今年%.2f" % info_tuple
print(info_str)
元组与列表之间的转换:
使用list函数可以把元组转换成列表
list(元组)
使用tuple函数可以把列表转换成元组
tuple(列表)
字典:(与矩阵有点像)
一般字典用于存储描述一个物体的相关信息
字典用{}定义,字典使用键值对储存数据,键值对之间使用,分隔
键 key 是索引
值 value 是数据
键和值之间使用:分隔
键必须是唯一的
值可以取任何数据类型,但键只能使用字符串、数字、或元组
# 字典是一个无序的数据集合,使用print函数输出字典是,通常
# 输出结果的顺序与定义的顺序是不一致的!
xiaoming = {"name": "小明",
"age": 18,
"gender": True,
"height": 1.75,
"weight": 75.5}
print(xiaoming)
xiaoming_dict = {"name": "小明"}
# 1.取值
print(xiaoming_dict["name"])
# 2.增加/修改
# 如果key不存在,就会新增键值对
xiaoming_dict["age"] = 18
# 如果不存在,就会修改已经存在的键值对
xiaoming_dict["name"] = ["小小明"]
# 3.删除
xiaoming_dict.pop("name")
print(xiaoming_dict)
字典的遍历:
xiaoming_dict = {"name": "小明",
"qq": "123456",
"phone": "10086"}
# 迭代遍历字典
# 变量k是每一次循环中,获取到的键值对的key
for k in xiaoming_dict:
print("%s -%s" % (k, xiaoming_dict[k]))
字典应用场景:
# 将多个字典放在一个列表中,在进行遍历,
# 在循环体内部针对每一个字典进行相同的操作
card_list = [
{"name": "张三",
"qq": "123456",
"phone": "110"},
{"name": "李四",
"qq": "54321",
"phone": "10086"}
]
for card_info in card_list:
print(card_info)
字符串操作:(字符串操作巨多)
hello_str = "hello hello"
# 1.统计字符串长度
print(len(hello_str))
# 2.统计某一个小(子)字符串出现的次数
print(hello_str.count("llo"))
# 2.某一个子字符串出现的次位置
print(hello_str.index("llo"))
字符串查找与替换:
hello_str = "hello world"
# 1、判断是否以指定字符串开始
print(hello_str.startswith("hello"))
# 2、判断是否是以指定字符串结束
print(hello_str.endswith("world"))
# 3、查找指定字符串
print(hello_str.find("llo"))
# 替换字符串
# replace 方法执行完成后,会返回一个新的字符串
# 注意:不会修改原有字符串内容
print(hello_str.replace("world", "python"))
print(hello_str)
文本对齐:
# 要求:顺序并且居中对齐输出以下内容
poem = ["\t\n登黄鹤楼",
"王焕之",
"白日依山尽\t\n",
"黄河入海流", "欲穷千里目", "更上一层楼"]
for poem_str in poem:
# 先使用strip方法去除字符串中的空白字符
# 在使用center方法居中显示文本
print("|%s|" %poem_str.center(10, " ")) # 居中
# print("|%s|" %poem_str.strip().center(10, " ")) # 居中
# print("|%s|" %poem_str.ljust(10, " ")) # 左对齐
# print("|%s|" %poem_str.rjust(10, " ")) # 右对齐
# print(poem)
字符串的切片:
切片方法适用于字符串、列表、元组(字典不可以切片)
运算符
完整的for循环语法:
for num in [1, 2, 3]:
print(num)
if num == 2:
break
else:
# 如果循环体内部使用了break退出了循环
# else下方的代码就不会被执行
print("会执行吗")
print("循环结束")
student = [
{"name": "阿土"},
{"name": "小美"}
]
# 学员列表中搜索指定的姓名
find_name = "阿土"
for stu_dict in student:
print(stu_dict)
if stu_dict["name"] == find_name:
print("找到%s了" % find_name)
# 如果找到了,就应该直接退出循环,而不再遍历后续的元素
# 如果break执行了,那么else程序就不会执行
break
else:
# 如果希望搜索列表时,所有字典检查一遍之后,都没有发现需要搜索的目标
# 还希望得到一个统一的提示!
print("抱歉没有找到%s"% find_name)
print("循环结束")
待更 ...