Python基础之(判断,循环,列表,字典)
一.python介绍
Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。 Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。(引于菜鸟教程)
二.python与其他语言对比
Java C# PHP Python (开发效率高),这些语言本身不需要你去管理内存了。
它们都有自己的虚拟机,对于开辟内存、释放内存都由这个虚拟机处理。
C 和 Python、Java、C#等
C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作。
其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行
三.python的种类
Cpython
Python的官方版(现在用的基本都是Cpython),使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
Jyhton
Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
IronPython
Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
PyPy(特殊)
Python实现的Python,将Python字节码直接编译成机器码。
四.python规则
1.python解释器
我们现在使用的最广泛的是python的官方版本cpython,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上
2.windows安装python
进入官网下载安装包:https://www.python.org/downloads/
记得将python安装路径配置进环境变量
安装完python后,进入到DOS命令下面输入:python
3.编码
编码 | 字母占位 | 中文站位 | 特殊 | |
unicode | 万国码 | 2字节,16位 | 3字节,24位 | 占存储空间较大 |
utf-8 | 对万国码的压缩 | 1字节,8位 | 3字节,24位 | 压缩了存储空间 |
gbk,gb2312 | 中文的编码 | 1字节,8位 | 2字节,16位 | 不支持其他语言 |
-文件编码
-python解释器编码(py3 utf-8) # -*- coding:utf-8 -*-
PS:python解释器编码(ascii)
在要注释的行首输入#
在需要注释的处输入""" """适用于注释段落
变量命名要求:
字码,数字,下划线组成,数字不能开头,不能是关键字。
Ps:Python用_来分割,不使用驼峰式命名
4.第一个python程序"Hello World"
print("Hello World")
五.if条件语句
1 if: 2 成功走这里 3 else: 4 失败走这里
1.如果用户输入的number等于4输出正确,否则的话输出错误。
number = input("请输入你猜的数字:") if number == 4: print("正确") else: print("错误")
2.当需要多个判断的时候,第二个或者第三个或者有更多条件用elif
if 条件: 输出 elif 条件: 输出 else: 输出
具体使用方法如:
number = 10 user_number = input("请输入你猜的数字:") user_number = int(user_number) if user_number > number: print("对不起,猜大了!") elif user_number < number: print("对不起,猜小了!") else: print("恭喜您猜对了!")
getpass输入加密(只能在命令行下起作用)
1 import getpass 2 name = input("请输入用户名:") 3 pwd = getpass.getpass("请输入密码:") 4 if name == "json" and pwd == "666": 5 print("欢迎登陆!") 6 else: 7 print("登录失败!")
六.while循环语句
while 条件: continue # 立即开始下次循环 break # 跳出所有循
练习:
1.使用while循环输入 1 2 3 4 5 6 8 9 10
i = 1 while True: if i == 7: i = i + 1 continue print(i) i = i +1 if i == 11: break
2.求1-100的所有数的和
value = 0 i = 1 while i < 101: value = value + i i = i + 1 print(value)
3.输出 1-100 内的所有奇数
i = 1 while i < 101: if i % 2 == 1: # %是取余 print(i) i = i + 1
4.用户登陆(三次机会重试)
i = 0 n = 3 while i < 3: name = input("请输入用户名:") pwd = input("请输入密码:") if name == "json" and pwd == "123": print("欢迎登陆!") break else: n = n -1 print("输入错误您还有", n, "次机会") i = i + 1 else: print("输入错误3次账号被锁定!")
七.python的基本数据类型
1.算数运算
注:运算符的执行顺序,从前往后
2.比较运算
3.赋值运算
4.逻辑运算
5.成员运算
6.整数int
创建:
1 a = 123 2 a = int(123)
转换:
1 age = "18" 2 new_age = int(age)
7.布尔类型
创建:
1 a = True 2 b = False
转换:
数字转换,只有0是False,其他True
字符串, 只有""是False,其他True
8.字符串
a.创建:
a = "alex" a = str('alex')
转换:
1 age = 19 2 new_age = str(age)
字符串的拼接:
1 name = 'alex' 2 gender = '女' 3 new_str = name + gender 4 print(new_str)
字符串格式化转换,%s占位符,%d字符串:
1 # 占位符, 2 # name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!' 3 # new_str = name %('男',19,) 4 # print(new_str) 5 6 name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!' %('男',19,) 7 print(name)
b.判断子序列是否在其中
1 content = "Alex 前几天去泰国玩姑娘,一不小心染上了病,他的内心活动是,真该多来几个" 2 if "前几天去" in content: 3 print('包含敏感字符') 4 else: 5 print(content)
c.移除空白
val = " alex " print(val) new_val = val.strip() # 左右 print(new_val) new_val = val.lstrip()# 左边 print(new_val) new_val = val.rstrip() # 右边 print(new_val)
d.分割
1 user_info = "alex sb123 9" 2 # v = user_info.split('|') 3 # v = user_info.split('|',1) 4 # v = user_info.rsplit(' ',1)
e.长度(字符)
1 val = "李杰sb" 2 v = len(val) 3 print(v)
f.索引
1 val = "李杰sb" 2 v = val[0] 3 print(v) 4 5 val = input('>>>') 6 i = 0 7 while i < len(val): 8 print(val[i]) 9 i += 1
g.切片
1 name = '我叫李杰,性别我今年岁,我在说谎!' 2 print(name[0]) 3 print(name[0:2]) 4 print(name[5:9]) 5 print(name[5:]) 6 print(name[5:-2]) 7 print(name[-2:])
9.列表
创建:
1 a = ['json','狗','eric',123] 2 a = list(['json','狗','eric',123])
in判断
1 if 'al' in a: 2 pass 3 if 'al' in a[0]: 4 pass
索引
1 val = a[0]
长度
1 val = a[0]
切片
1 a = ['alex','狗','eric',123] 2 v = a[0::2] 3 print(v)
追加
1 a = ['alex','狗','eric',123] 2 a.append('xxoo') 3 print(a)
插入
1 a = ['alex','狗','eric',123] 2 a.insert(0,'牛') 3 print(a)
删除
1 a = ['alex','eric','狗','eric',123] 2 # a.remove('eric') 3 del a[0] 4 print(a)
更新
1 a = ['alex','eric','狗','eric',123] 2 a[1] = '阿斯顿发送到' 3 print(a)
for循环
1 a = ['alex','eric','狗','eric',123] 2 for item in a: 3 print(item) 4 # break 5 # continue
10.字典
创建:
1 v = { 2 'name': 'alex', 3 'password': '123123' 4 }
索引获取值
1 n = v['name'] 2 print(n)
增加,无,增加;有,修改
1 v['age'] = 19 2 print(v)
删除
1 del v['name'] 2 print(v)
循环
1 for item in v.keys(): 2 print(item) 3 for item in v.values(): 4 print(item) 5 for key,val in v.items(): 6 print(key,val)
相互嵌套
1 user_dict = { 2 'k1': 'v1', 3 'k2': {'kk1':'vv1','kk2':'vv2'}, 4 'k3': 123, 5 'k4': ['alex','eric',['a','b','c'],'李永乐',{'k11':'vv1'}], 6 } 7 user_dict['k4'][2].append('123') 8 user_dict['k4'][4]['n'] = '李明'
应用:
1 user_list = [ 2 {'name':'alex','pwd':'123123','times':1}, 3 {'name':'eric','pwd':'123123','times':1}, 4 {'name':'tony','pwd':'123123','times':1}, 5 ] 6 user = input('用户名:') 7 pwd = input('密码:') 8 for item in user_list: 9 if user == item['name'] and pwd == item['pwd']: 10 print('登录成功') 11 break
11.文件操作
打开并读取
1 f1 = open('db','r') 2 data = f1.read() 3 f1.close() 4 print(data)
清空并写入
f2 = open('db','w') f2.write(target) f2.close()