一、Python和其他语言对比

C语言最接近机器语言,因此运行效率是最高的,但需要编译。

JAVA更适合企业应用。

PHP适合WEB页面应用。

PYTHON语言更加简洁,丰富的类库,使初学者更易实现应用开发,但运行速度不如其他语言。

高级语言都是通过各自的解释器,将代码编译成字节码,再将字节码编译成机器码。

二、Python种类

CPython:用C语言实现的Python解释器

执行过程:代码 -> C字节码 -> 机器码 (一行一行编译)

JPython:用JAVA实现的Python解释器

IronPython:用.NET实现的Python解释器

执行过程:代码 -> 其他字节码 -> 机器码

PyPy:用Python实现的Python解释器

执行过程:代码 -> C字节码 -> 机器码 全部转换完 -> 执行

三、Python基础

1.IDE工具

PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。

简单设置

(1)设置编码UTF-8

(2)设置模板temp

(3)设置鼠标滚动放大

2.编码

以下链接已经详细描述了各种编码

http://www.china-bigcloud.online/2017/04/11/字符集编码/

需要注意:

中文字符——utf-8,需要使用三个字节来表示 24位

gbk,gbk2312 需要使用二个字节来表示 16位

Python编码

python3默认编码方式是UTF-8

文件编码 # -- coding:utf-8 --

解释器编码

3.注释

(1)# 单行注释

(2)""" """ 多行注释

(3)IDE中使用ctrl+?注释代码

4. .pyc文件

由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同。

pyc文件是用来保存python虚拟机编译生成的byte code的。在python的运行过程中,如果遇到import首先在设定好的path中寻找对应的.pyc或者.dll文件。如果没有这些文件,则编译成对应的PycodeObject并穿件.pyc文件写入中间结果。

5.变量
  • 字母
  • 数字(不能开头)
  • 下划线
  • 不能使用python内置关键字
  • 变量命名时,名字要有可读性,一般以下划线分割,如user_id
6.输入,输出

(1)input

v = input("请输入:")
运行结果:
请输入:abc

(2)getpass

从终端输入一行字符串,关闭了回显(输入时不显示输入的字符串),适用于用密码的输入

import getpass
v = getpass.getpass('请输入:')
print(v)

此方法只在终端测试时有效,在IDE测试时无效

运行结果:
C:\Python35\python.exe E:\s17\day01-0423\test.py
请输入:
asdgajlksd

(3)print

v = "你好,This is 5!"
print(v)
运行结果:
你好,This is 5!
7.条件语句

(1)形式1

if 条件:

成功走这里

else:

失败走着

示例:

import getpass

name = input("请输入姓名:")
pwd = getpass.getpass('请输入密码:')
if name == 'xiaoda' and pwd == '123456':
print(pwd)
print('欢迎登陆')
else:
print(pwd)
print('退出')
运行结果:
C:\Python35\python.exe E:\s17\day01-0423\test.py
请输入姓名:xiaoda
请输入密码:
346134
退出
C:\Python35\python.exe E:\s17\day01-0423\test.py
请输入姓名:xiaoda
请输入密码:
123456
欢迎登陆

(2)形式2

if 条件:

...

elif 条件:

...

else:

...

示例:

username = input('>>>')
if username == 'alex':
print('普通管理')
elif username == 'oldboy':
print('超级管理')
elif username == '郭少龙':
print('人')
elif username == '刘一':
print('装逼犯')
else:
print('再见...') print('end')
运行结果:
请输入姓名:达达
超级管理
end
请输入姓名:xiaoda
帅哥
end
请输入姓名:武总
再见...
end
8.循环语句

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
运行结果:
1
2
3
4
5
6
8
9
10
练习2:求1-100的所有数的和
value = 0
i = 1
while i < 101:
value = value + i
i = i + 1
print(value)
运行结果:
5050
练习3:输出 1-10 内的所有奇数
i = 1
while i < 11:
a = i % 2
if a == 1:
print(i)
i = i + 1
运行结果:
1
3
5
7
9
练习4:输出 1-10 内的所有偶数
i = 1
while i < 11:
a = i % 2
if a == 0:
print(i)
i = i + 1
运行结果:
2
4
6
8
10
练习5:求1-2+3-4+5 ... 99的所有数的和
value = 0
i = 1
while i < 100:
if i % 2 == 1: #奇数
value = value + i
i += 1
else: #偶数
value = value - i
i += 1
print(value)
运行结果:
50
练习6:用户登陆(三次机会重试)
i = 0
while i < 3:
username = input('请输入姓名:')
pwd = input('请输入密码:')
if username == 'xiaoda' and pwd == '123123':
print('登录成功')
break
else:
print('用户名或密码错误,请重新输入。')
i += 1
else:
print('您已输入错误3次,请核对后重试。')
运行结果:
请输入姓名:dog
请输入密码:1234
用户名或密码错误,请重新输入。
请输入姓名:cat
请输入密码:123456
用户名或密码错误,请重新输入。
请输入姓名:mouse
请输入密码:123123
用户名或密码错误,请重新输入。
您已输入错误3次,请核对后重试。 请输入姓名:xiaoda
请输入密码:123123
登录成功
9.运算符

(1)算术运算符

运算符 描述 实例
+ 加 - 两个对象相加 a + b 输出结果 30
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ 除 - x除以y b / a 输出结果 2
% 取模 - 返回除法的余数 b % a 输出结果 0
** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
// 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0

(2)比较运算符

运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.
<> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 true。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。

(3)赋值运算符

运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a

(4)位运算符

运算符 描述 实例
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
/ 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a / b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111

(5)逻辑运算符

运算符 逻辑表达式 描述 实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

(6)成员运算符

运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

(7)身份运算符

运算符 描述 实例
is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1

(8)运算符优先级

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ / 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
注意:
a.
i += 1
b.
if 1 == 1 or 1 > 2 and 1 == 4:
print('正确')
else:
print('错误')
运行结果:
正确
注意:同为逻辑判断没有优先级,自左向右,符合条件即为真
c.
content = "Alex 前几天去泰国玩姑娘,一不小心染上了病,他的内心活动是,真该多来几个" if "前几天去" in content:
print('包含敏感字符')
else:
print(content)
运行结果:
包含敏感字符
10.Python数据类型
(1) 整数 int
  • 创建

    a = 123

    a = int(123)
  • 转换

    age = "18"

    new_age = int(age)
(2) 布尔值
  • 创建

    a = True

    b = False
  • 转换
    • 数字转换,只有0是False,其他True
    • 字符串, 只有""是False,其他True
    • 待续...
(3) 字符串
  • 创建

    a = "alex"

    a = str('alex')

  • 转换

    age = 19

    new_age = str(age)

  • 字符串的拼接

  name = 'alex'
gender = '女'
new_str = name + gender
print(new_str)
运行结果:
alex女
  • 字符串格式化

    占位符
  name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!'
new_str = name %('男',19,)
print(new_str)
运行结果:
我叫李杰,性别:男,我今年19岁,我在说谎!
  name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!' %('男',19,)
print(name)
运行结果:
我叫李杰,性别:男,我今年19岁,我在说谎!
  • 判断子序列是否在其中
  content = "Alex 前几天去泰国玩姑娘,一不小心染上了病,他的内心活动是,真该多来几个"

  if "前几天去" in content:
print('包含敏感字符')
else:
print(content)
  • 移除空白
  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)
运行结果:
alex
alex
alex
alex
  • 分割
  user_info = "alex|sb123|9"
v = user_info.split('|')
print(v)
v = user_info.split('|',1)
print(v)
v = user_info.rsplit(' ',1)
print(v)
运行结果:
['alex', 'sb123', '9']
['alex', 'sb123|9']
['alex|sb123|9']
  • 长度(字符)
  val = "李杰nb"
v = len(val)
print(v)
运行结果:
4
  • 索引
  val = "李杰nb"
v = val[0]
print(v)
运行结果:

  val = input('请输入:')
i = 0
while i < len(val):
print(val[i])
i += 1
运行结果:
请输入:啥空间大概xck23





x
c
k
2
3
  • 切片
  name = '我叫李杰,性别我今年岁,我在说谎!'
print(name[0])
print(name[0:2])
print(name[5:9])
print(name[5:])
print(name[5:-2])
print(name[-2:])
运行结果:

我叫
性别我今
性别我今年岁,我在说谎!
性别我今年岁,我在说
谎!
(4) 列表
  • 创建:

    a = ['alex','狗','eric',123]

    a = list(['alex','狗','eric',123])

  • in判断:

  if 'al' in a:
pass
  if 'al' in a[0]:
pass
  • 索引:
  val = a[0]
  • 长度:
  val = len(a)
  • 切片:
  a = ['alex','狗','eric',123]
v = a[0::2]
print(v)
  • 追加:
  a = ['alex','狗','eric',123]
a.append('xxoo')
print(a)
运行结果:
['alex', '狗', 'eric', 123, 'xxoo']
  • 插入:
  a = ['alex','狗','eric',123]
a.insert(1,'牛')
print(a)
运行结果:
['alex', '牛', '狗', 'eric', 123]
  • 删除:
  a = ['alex','eric','狗','eric',123]
a.remove('eric')
print(a)
del a[1]
print(a)
运行结果:
['alex', '狗', 'eric', 123]
['alex', 'eric', 123]
  • 更新:
  a = ['alex','eric','狗','eric',123]
a[1] = '阿斯顿发送到'
print(a)
运行结果:
['alex', 'eric', '阿斯顿发送到', 'eric', 123]
  • For循环:
  a = ['alex','eric','狗','eric',123]
for item in a:
print(item)
# break
# continue
运行结果:
alex
eric

eric
123
(5) 字典操作
  • 创建
  v = {
'name': 'alex',
'password': '123123'
}
  • 索引获取值
  n = v['name']
print(n)
  • 无数据时为增加;有数据时为修改

    v['age'] = 19
    print(v)
  • 删除

    del v['name']
    print(v)
  • 循环

    for item in v.keys():
    print(item)
    for item in v.values():
    print(item)
    for key,val in v.items():
    print(key,val)
  • 长度

  print(len(user_dict))
以上操作运行结果:
alex
{'age': 19, 'password': '123123', 'name': 'alex'}
{'password': '123123', 'age': 19}
password
age
123123
19
password 123123
age 19
2
  • 相互嵌套
  user_dict = {
'k1': 'v1',
'k2': {'kk1':'vv1','kk2':'vv2'},
'k3': 123,
'k4': ['alex','eric',['a','b','c'],'李杰',{'k11':'vv1'}],
}
user_dict['k4'][2].append('123')
user_dict['k4'][4]['n'] = '过啥龙'
运行结果:
{'k1': 'v1', 'k4': ['alex', 'eric', ['a', 'b', 'c', '123'], '李杰', {'k11': 'vv1'}], 'k3': 123, 'k2': {'kk2': 'vv2', 'kk1': 'vv1'}}
{'k1': 'v1', 'k4': ['alex', 'eric', ['a', 'b', 'c', '123'], '李杰', {'n': '过啥龙', 'k11': 'vv1'}], 'k3': 123, 'k2': {'kk2': 'vv2', 'kk1': 'vv1'}}

示例1:

  user_list = [
{'name':'alex','pwd':'123123','times':1},
{'name':'eric','pwd':'123123','times':1},
{'name':'tony','pwd':'123123','times':1},
]
user = input('用户名:')
pwd = input('密码:')
for item in user_list:
if user == item['name'] and pwd == item['pwd']:
print('登录成功')
break
运行结果:
用户名:eric
密码:123123
登录成功

示例2:

读取文件,重新赋值

(1)创建一个普通文件

 db
alex|123123|3
eric|123123|3

(2)读取文件,根据条件,重新赋值

 login.py

 #!/usr/bin/python
# -*- coding:utf-8 -*-
# 1. 打开并读取文件内容
f1 = open('db','r')
data = f1.read()
f1.close() # 2. 格式化,列表中嵌套字典
print(data)
user_info_list = []
user_str_list = data.split('\n')
for item in user_str_list:
temp = item.split('|')
v = {
'name': temp[0],
'pwd': temp[1],
'times': temp[2]
}
user_info_list.append(v)
user_info_list[1]['times'] = 3
print(user_info_list) # 3. 列表中嵌套的字典
#
# 4. 重新写入文件
target = """alex|123123|3\neric|123123|3""" f2 = open('db','w')
f2.write(target)
f2.close()

Python编程-编码、变量、数据类型的更多相关文章

  1. python编程之变量和简单的数据结构

    一.变量 前面我们用python输出了“hello world!” 这次我们在前面加入一行,定义一个变量,然后修改第二行. 添加变量导致Python解释器需要做更多工作.处理第1行代码时,它将文本“H ...

  2. Python编程-编码、文件处理、函数

    一.字符编码补充知识点 1.文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的,断电后 ...

  3. python基础知识 变量 数据类型 if判断

    cpu 内存 硬盘 操作系统 cpu:计算机的运算和计算中心,相当于人类的大脑 飞机 内存:暂时存储一些数据,临时加载数据和应用程序 4G 8G 16G 32G 速度快,高铁 断电即消失 造价高 硬盘 ...

  4. Python基础编程:字符编码、数据类型、列表

    目录: python简介 字符编码介绍 数据类型 一.Python简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心 ...

  5. python笔记二(数据类型和变量、编码方式、字符串的编码、字符串的格式化)

    一.数据类型 python可以直接处理的数据类型有:整数.浮点数.字符串.布尔值.空值. 整数 浮点数 字符串:双引号内嵌套单引号,可以输出 i'm ok. 也可以用\来实现,\n 换行 \t tab ...

  6. Python编程从入门到实践笔记——变量和简单数据类型

    Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...

  7. Python编程笔记二进制、字符编码、数据类型

    Python编程笔记二进制.字符编码.数据类型 一.二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存 ...

  8. 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出

    第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...

  9. Python编程:从入门到实践—变量和简单数据类型

    变量的命名和使用 #!/usr/bin/env python# -*- encoding:utf-8 -*- message ="Hello Python world!"print ...

随机推荐

  1. Response设置response header

    total : #常见状态码:服务器处理请求的结果状态 200 : 表示请求处理完成并完美返回; 302 : 表示请求需要进一步细化; 404 : 表示客户访问资源Not Found; 500 : 表 ...

  2. spring cloud与K8S

    链接:https://www.zhihu.com/question/50806354/answer/139653085 spring cloud +docker 当然没有问题,只是当我们搭建集群实现高 ...

  3. Android ADB工具-操作手机和获取手设备信息(四)

    Android ADB工具-操作手机和获取手设备信息(四) 标签(空格分隔): Android ADB 6. 其它命令 命令 功能 adb shell input text <content&g ...

  4. CentOS 6.5 Ruby源码安装

    清除旧版Ruby,若存在 yum remove ruby 若为源码,使用如下命令 cd <your-ruby-source-path> make uninstall 下面开始安装Ruby ...

  5. windows文件打包命令

    copy /Y partition.bin /b + qcsblhd_cfgdata.bin /b + qcsbl.bin /b + oemsbl.bin /b + fat.amss.bin /b + ...

  6. 光圈与F数相关知识

    一.F数 F数.光圈数.相对孔径的倒数. F数代表的意义 F数小(光圈大).F数大(光圈小). F数又称为镜头速度,F数小的镜头速度快.因为拍摄的曝光时间△t 正比于F数的平方. F数还能表征镜头的分 ...

  7. iOS --发送手机验证码收不到手机验证码

    方法一:使用受信任设备上显示的验证码. 如果您的受信任设备是iOS 9 及以上系统时,则验证码将自动显示在受信任设备上.此时你信任的设备上会弹出你在某地登录ID位置的小地图,有一个选择允许与不允许登录 ...

  8. UILabel标签文字过长时的显示方式

    lineBreakMode:设置标签文字过长时的显示方式. label.lineBreakMode = NSLineBreakByCharWrapping; //以字符为显示单位显示,后面部分省略不显 ...

  9. PID file found but no matching process was found. Stop aborted

    一般脚本部署时不会遇到这种情况,有时候自个手动处理会出现”PID file found but no matching process was found. Stop aborted”,根据意思就可以 ...

  10. python MD5操作

    def my_md5(str): import hashlib new_str = str.encode() #把字符串转成bytes类型 # new_str = b'%s'%str #把字符串转成b ...