python入门

一、bytes类型

 

二、三元运算

1

result = 值1 if 条件 else 值2

如果条件为真:result = 值1
如果条件为假:result = 值2

三、进制

  • 二进制,01
  • 八进制,01234567
  • 十进制,0123456789
  • 十六进制,0123456789ABCDEF  二进制到16进制转换http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1

计算机内存地址和为什么用16进制?

为什么用16进制

1、计算机硬件是0101二进制的,16进制刚好是2的倍数,更容易表达一个命令或者数据。十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数,也就是一个字节(8位进制可以用两个16进制表示)

2、最早规定ASCII字符集采用的就是8bit(后期扩展了,但是基础单位还是8bit),8bit用2个16进制直接就能表达出来,不管阅读还是存储都比其他进制要方便
3、计算机中CPU运算也是遵照ASCII字符集,以16、32、64的这样的方式在发展,因此数据交换的时候16进制也显得更好
4、为了统一规范,CPU、内存、硬盘我们看到都是采用的16进制计算


16进制用在哪里
1、网络编程,数据交换的时候需要对字节进行解析都是一个byte一个byte的处理,1个byte可以用0xFF两个16进制来表达。通过网络抓包,可以看到数据是通过16进制传输的。
2、数据存储,存储到硬件中是0101的方式,存储到系统中的表达方式都是byte方式

3、一些常用值的定义,比如:我们经常用到的html中color表达,就是用的16进制方式,4个16进制位可以表达好几百万的颜色信息。

 

四、一切皆对象

对于Python,一切事物都是对象,对象基于类创建

所以,以下这些值都是对象: "wupeiqi"、38、['北京', '上海', '深圳'],并且是根据不同的类生成的对象。

 

 

  pyCharm中python2.7与3.5版本的切换

切换py版本

file -> settings ->project interpreter ->选择版本

程序复制用ctrl+d

前面都加# ,ctrl+?

取消 ctrl+z

要想密码是密文,就要借助python的

在pycharm输入:

import getpass
# name = input('Input your name:')
# age = input('Input your age:')
#
# print(name,age)

username = input ("username:")
password = getpass.getpass ("password:")

.是调用getpass的功能,注,此模块在pycharm中无法使用。请打开python3.6尝试

发现密码还是看到的,但是在电脑运行输入CMD,输入:

C:\Users\user\Python36>python C:\Users\user\PycharmProjects\py_fullstack_s4\20180106\交互程序.py

执行成功

 

查看数据类型

Pirnt(type(name),type(age))

 

同一个数据类型的数据可以相加或比较,否则不能

转换类型int()str()

 

ASCII 256 8位

二进制位就是8位8bits

1  2  4  8  16  32  64 128 256

1  1  1  1   1   1   1  1   1

1字节=8位=8bits=1Byte

1024 Byte=1KB
1024KB=1MB=100万字节=100万字符
1024MB=1GB=一部高清短片
1024GB=1TB
1024TB=1PB
 
1个二进制是计算机里最小的表示单元
1个字节是计算机里最小的存储单位
Unicode 万国码
   占32位 utf-32 =4字节
由于占了太多
Utf-8=8bits 可变长编码
这样英文占一个字节,中文3个字节
欧洲2个字节
 
#是整行注释,不执行

"""是多行注释,把里面的都变成字符串

单引号和双引号没区别,只适用于单行,3个引号能用于多行字符串或注释

 

数值类型
Str 字符
数字类型
Int 整型
Long 长整型 2**32结果自动带L(32位硬盘或32位的软件,都会出现2**32结果自动带L,只有同时都是64位,才不会带L)
Float浮点型
复数

 

 

布尔分布

条件成立 true

条件不成立,false

 

字符串常用功能:

name = "\n\t   jensen xie   \t"
print(name)
print(name.strip()) #脱掉,把前后的空格,\t\n脱掉
print(name.split()) #分割,把一个字符默认按空格分割为列表类型

name = "\n\t   jensen xie;alex li   \t"
print(name.split(";")) #分割,把一个字符默认按空格分割为列表类型,可以指定分隔符

print(len(name)) # 长度
name1="jensen,zhicong,lizhi"
print(name1.index("h")) # 索引
# 只提取字符串中一部分信息,叫切片
print(name1[0:6])
print(name1[7:14])
print(name1[-5:])

print(name1[0::2]) #2是切的步长
print(name1[0::1]) #2是切的步长

 

替换

name = ["a","b","c","d","e"]
print(name)
print(name.index("d"))
name[name.index("d")]="dd"
print(name)

 

name = []  #列表
print(name)
print(type(name))

name = ["苏豪之","秦臻","李志","李志","燕子"]

print(name)
print(name[-1])
print(name.index("李志"))  #查询李志的所在位置,元素的下标
# 想取秦臻后面的所有
print(name[1:])
# 统计多少个李志
print(name.count("李志"))
# 追加
name.append("光头")
print(name)
# 插入,在第2个后面
name.insert(2,"玉米")
print(name)

# 删除第4个
print(name.pop(2))
print(name)

 

 

 

 

 

posted @ 2018-01-12 22:39  森森2017  阅读(149)  评论(0编辑  收藏  举报