python学习之路-基础篇-day01

来源:互联网 发布:windows上搭建hadoop 编辑:程序博客网 时间:2024/06/05 00:38

大纲
1.python环境准备
1)python安装
2)pycharm安装
2.什么是python
3.变量
4.注释
5.用户输入
6.数据类型及相关操作
1)数字
2)布尔
3)字符串
4)列表
5)元组
6)字典

一.python环境准备
1.python下载及安装
下载地址https://www.python.org
在这里我下载的是win10+64bit+python-3.0.1.amd64版本
2.python环境变量配置
1)打开我的电脑(此电脑)
这里写图片描述
2)找到Python安装的目录
这里写图片描述
3)将python的安装目录添加到系统环境变量的Path路径下
这里写图片描述
4)检验python环境变量有没有配置成功
在命令行模板中进入python,打印hello world,证明python已经配置完成啦
这里写图片描述
3.接下来我们就要安装python IDE(IDE-集成开发环境,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制),z这里我们可以有多种选择,可以使用eclipse,pycharm…我使用的是pycharm
提供pycharm下载链接:http://cloud.189.cn/t/Qz2IvaF3yqMb (访问码:0975)
或者在官网下载https://www.jetbrains.com/pycharm/download/#section=windows

二.what is python?
python是一种面向对象的解释型计算机程序设计语言。(在python中什么都是对象!只要客观存在的具体事务都是对象!)
那么大家就会问什么是面向对象呢?它和面向过程究竟有什么区别呢?带着这个问题在后面会慢慢学习到
那么什么又是解释型语言呢?
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的. 这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)
三.变量
1.什么是变量?
在程序运行过程中允许发生改变的量
2.python中变量的定义规则是什么?
1)变量名只能是字母,数字,下划线的组合
2)变量名的第一个字母不可以是数字
3)变量名不可以是以下关键字组成
[‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
3.python中怎样给变量赋值?

name="china"print(name)

四.注释
单行注释:# 被注释内容
多行注释:”’被注释内容 ”’
多行注释”’ ”’还可以用作多行输出打印

name=input("name")age=input("age")job=input("job")salary=input("salary")print(name,age,job,salary)msg='''------------------info of %s-------------------Name:%s       #%s是占位符Age:%sJob:%sSalary:%s-------------------end-------------------------'''%(name,name,age,job,salary)print(msg)

这里写图片描述
python常用的占位符
%d=digit 整数
%s=string 字符串
%f=float 浮点数
五.用户输入

1)

hi=input("please input your name:")print("my name is",hi)

输出结果:

name=input("name:")age=input("age:")job=input("job:")salary=input("salary:")print("personal information of %s:")print("         Name:%s")print("         Age:%s")print("         Job:%s")print("         Salary:%s")print("----------------------------")

2)密码不可见输入

import getpasspassword=getpass.getpass("input passwd:")print(password)

这里写图片描述

这里写图片描述
六.数据类型
1.数字
1)整型int %d
32bit机器的范围-2**31~2**31-1
64bit机器的范围-2**63~2**63-1
2)长整型long
和c语言不同,python没有限制长整型的大小范围,当由于机器内存有限,数据也不可能无限大(注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。)
3)浮点型float %f
占8个字节
4)复数complex
数学名词.由实数部分和虚数部分所组成的数,形如a+bi .其中a、b为实数,i 为“虚数单位”.a、b分别叫做复数a+bi的实部和虚部(注:Python中存在小数字池:-5 ~ 257)
2.布尔型数据
TRUE or FALSE
1 0
3.字符串类型 %s(不可修改)
字符串是由字母,数字,下划线组成分一串字符。是python的基础数据类型,字符串本身是不可被修改的

这就是一个字符串(python中单引号和双引号总体来说没有什么区别)

"hello world"

重复打印字符串

print("helloworld"*3)

判断是否是其中的元素

print("e" in "hello")#True

那么对于字符串来说究竟有哪些操作呢?
1)字符串的拼接“+”
python中没使用一次+就需要开辟一块新的空间,多次连续使用,就需要循环开辟多个空间,如此内存操作频繁,效率降低

a="hello"b="\nsun"print(a+b)

2).join方法

a=""b="hello sun"c=a.join(b)print(c)c2="".join([a,b])print(c2)
a=['1','2','3','4']print('+'.join(a))
a=('1','2','3','4')print('+'.join(a))

3)字符串格式化输出

name="china"print("my name is %s"%name)

4)字符串的比较
python3中已经移除了cmp比较方法,可以使用“==”进行比较
5)字符串的替换

s1="hello world"s2=s1.replace("hello","hi")print(s2)

6)字符串的截取

s="i love china"print(s[0])      #iprint(s[-1])     #aprint(s[1:5])    # lov(不包括第五个元素)print(s[0:])     #i love chinaprint(s[:])      #i love chinaprint(s[:-1])    #i love chinprint(s[1:11:2]) # oeci(步长为2)

7)字符串的查找
i)find()–返回的是字符串的下标,字符串从左边开始从0计数

s="abbcda"print(s.find('a'))                                #下标从0开始只返回第一个匹配元素的下表标:0print(s.find('a',2))                                #下标从2开始只返回第一个匹配元素的下表标:5print(s.find('g'))                                  #没有找到相应的内容,返回-1

ii)index方法
返回字符串里查找子串第一次出现的位置,类似于find的用法,但是当没有找到相应的内容时,不是返回-1,而是直接报错

s="abbcda"print(s.index("a"))

iii)rfind和rfindex方法这里就不一一举例啦,大家可以自己试一下
8)字符串分割

info="i/can/speak/english"print(info.split("/"))#结果为['i', 'can', 'speak', 'english']

9)format方法,len方法

a="china"b="i love {name}".format(name=a)print(b)#输出i love chinaa="china"print(len(a))#输出5

10)其他方法
s.startwith(str)#判断s中的字母是否以str内容开头
S.upper()#S中的字母大写
S.lower() #S中的字母小写
S.capitalize() #首字母大写
S.istitle() #S是否是首字母大写的
S.isupper() #S中的字母是否便是大写
S.islower() #S中的字母是否全是小写
S.strip()去掉字符串的左右空格
S.lstrip()去掉字符串的左边空格
S.rstrip()去掉字符串的右边空格
S.center(width, [fillchar]) #中间对齐
S.count(substr, [start, [end]]) #计算substr在S中出现的次数
S.expandtabs([tabsize]) #把S中的tab字符替换没空格,每个tab替换为tabsize个空格,默认是8个
S.isalnum() #是否全是字母和数字,并至少有一个字符
S.isalpha() #是否全是字母,并至少有一个字符
S.isspace() #是否全是空白字符,并至少有一个字符
S.join()#S中的join,把列表生成一个字符串对象
S.ljust(width,[fillchar]) #输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。
S.rjust(width,[fillchar]) #右对齐
S.splitlines([keepends]) #把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。
S.swapcase() #大小写互换
4.列表
1)创建列表及取值

#方法一name1=["name","age","sex"]print(name1)#方法二name2=list(["name","age","sex"])print(name2)#列表的下标从0开始print(name1[0])  #name#也可以倒着取值,那么第一个值下标为-1print(name1[-1]) #sexprint(name1[-2]) #age

2)列表的切片

city=["beijing","shanghai","nanjing","guangzhou","shenzheng"]print(city[1:4])#从下标1开始取值到下标4,包括1,不包括4---['shanghai', 'nanjing', 'guangzhou']print(city[1:-1])# 从下标1开始取值到下标-1,包括1,不包括-1---['shanghai', 'nanjing', 'guangzhou']print(city[3:-1])#---['guangzhou']print(city[:3])#从下标1开始取值到下标3,包括1,不包括3----['beijing', 'shanghai', 'nanjing']print(city[1:])#从下标1开始取值到最后----['shanghai', 'nanjing', 'guangzhou', 'shenzheng']print(city[0::2])#从下标0开始每隔一个取一个值-----['beijing', 'nanjing', 'shenzheng']print(city[::2])#同上-----['beijing', 'nanjing', 'shenzheng']print(city[3::-2])# ['guangzhou', 'shanghai']

3)列表的常用操作

city=["beijing","shanghai","nanjing","guangzhou","shenzheng"]city.append("suzhou")print(city)#追加,会自动加在末尾---1 ['beijing', 'shanghai', 'nanjing', 'guangzhou', 'shenzheng', 'suzhou']city.insert(2,"xiaohua")print(city)#插入,在下标2的位置插入,可以自己选择位置啦---2 ['beijing', 'shanghai', 'xiaohua', 'nanjing', 'guangzhou', 'shenzheng', 'suzhou']city[0]="fujian"print((city))#修改----3 ['fujian', 'shanghai', 'xiaohua', 'nanjing', 'guangzhou', 'shenzheng', 'suzhou']del city[2]print(city)#删除///.remove("被删除元素")也可----4 ['fujian', 'shanghai', 'nanjing', 'guangzhou', 'shenzheng', 'suzhou']b=["huashan","hengshan"]city.extend(b)print(city)#扩展,3.0中已经不支持不同数据类型的扩展和排序啦----5 ['fujian', 'shanghai', 'nanjing', 'guangzhou', 'shenzheng', 'suzhou', 'huashan', 'hengshan']#拷贝出一份新的列表city3=["beijing","shanghai","nanjing","beijing","shenzheng"]print(city3.count("beijing"))#统计----2#排序.sort()#反转.reverse()print(city.index("shanghai"))#取下标 1print(city[city.index("shanghai")])#取下标后再取值 shanghaix=city.pop(0)#pop删除填写需要删除的下标print(city)#12 ['shanghai', 'nanjing', 'guangzhou', 'shenzheng']print(x)#beijing#pop删除后会返回被删除的内容,pop不指定默认删除最后一个而remove是单纯的删除,不会返回任何内容print("shenzheng" in city)#Trueprint("shenzheng" not in city)#False#判断列表中某元素是否存在print(type(city) is list)#True#判断是否为列表

获取第二个’c’的位置

num=['a','b','c','d','e','c','f']first_index=num.index('c')print(first_index)#2after_list=num[first_index+1:]#切片print(after_list)#['d', 'e', 'c', 'f']second_index=after_list.index('c')print(second_index)#2index_num=first_index+second_index+1#5

4)列表的遍历

# 方法1for i in list:#方法2for i in range(len(list)):# 方法3  i是下标,val是元素for i, val in enumerate(list):

5.元组
和列表差不多,只是元组一旦建立,就无法修改,又叫只读列表
元组只有两个方法index()和count()
元组的创建

person=("age","name","sex")tup=(2,)#一个元素需要在后面加逗号

6.字典
字典是一种key-value的形式,字典也是无序的,键是唯一的
字典创建,直接去重

info1={"北京":"朝阳","南京":"新街口"}print(info1)info={"北京":"朝阳","南京":"新街口"}print(info)info["上海"]="人民广场"print(info)   #增加  1 {'上海': '人民广场', '北京': '朝阳', '南京': '新街口'}info["南京"]="夫子庙"print(info)   #修改  2 {'上海': '人民广场', '北京': '朝阳', '南京': '夫子庙'}info.pop("上海")print(info)       #删除1  3 {'北京': '朝阳', '南京': '夫子庙'}del info["北京"]print(info)      #删除2  3 {'南京': '夫子庙'}#info.popitem()-----随机删除print("南京" in info)    #查找  Trueprint(info.get("南京"))   #查找 夫子庙   get方法key不存在返回noneprint(info["南京"])       #查找 夫子庙   key不存在就会报错

字典可以嵌套

data={       "北京":{          "朝阳":{              "国贸":["chanel","gucci"],              "中关村":["baidu","jingdong"]          },          "昌平":{              "沙河":["test1","test2"],              "通天":["我爱我家","souhu"]          }          },       "南京":{           "新街口":{               "洪武路":["新百","中央"],               "金融中心":["英语培训","托福"]                },           "河西":{               "河西大街":["1","2"],               "嘉陵":["3","4"]           } }}print(data)