py入门 _ 01

                 入门学习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)
    # 每一次循环,都让resulti这个计数器相加
   
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 = #
   
#开始循环
   
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 关键字本质上是用来将一个变量从内存中删除,因为delname变量,所以会报错
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("循环结束")

 

 


 

待更 ...


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章