前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文件类型+变量+数值字符串

文件类型+变量+数值字符串

作者头像
老七Linux
发布2018-05-31 11:04:45
2.9K0
发布2018-05-31 11:04:45
举报
文章被收录于专栏:Laoqi's Linux运维专列
Python变量
  • 变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变。
  • Python下变量是对一个数据的引用,变量类似于一个标签,通过标签我们可以读取到标签的数据。

变量的命名

  • 变量名由字母、数字、下划线组成。
  • 变量不能以数字开头
  • 不可以使用关键字
  • a a1 _a

变量的赋值

  • 是变量的声明和定义的过程
代码语言:javascript
复制
In [1]: a = 123

In [2]: id(a)
Out[2]: 34580560    //存在内存的位置

In [3]: a = 456

In [4]: id(a)
Out[4]: 51939992    //位置发生变化
运算符与表达式
Python运算符包括
  • 赋值运算符
  • 算术运算符
  • 关系运算符
  • 逻辑运算符

表达式是将不同的数据(包括变量、函数)用运算符号按一定规则连接起来的一种式子。

代码语言:javascript
复制
In [5]: x = 2       //把 2 赋值给 x

In [6]: y = 'asd'   //把 asd 赋值给 y ,注意 当值是字符串的时候需要加 单引号

In [7]: y       //查看 y 的值
Out[7]: 'asd'

In [8]: x
Out[8]: 2

查看值得类型:

代码语言:javascript
复制
In [10]: type(x)
Out[10]: int

In [11]: type(y)
Out[11]: str
赋值运算符
代码语言:javascript
复制
In [12]: x = 3

In [13]: x += 2

In [14]: x
Out[14]: 5

In [15]: x -= 2

In [16]: x
Out[16]: 3

In [17]: x *= 2

In [18]: x
Out[18]: 6

In [19]: x /= 3

In [20]: x
Out[20]: 2

In [21]: x %= 3     //取余

In [22]: x
Out[22]: 2
算术运算符
代码语言:javascript
复制
In [23]: 3 + 4
Out[23]: 7

In [26]: 3 * 4 
Out[26]: 12

In [27]: 3 - 4
Out[27]: -1

In [28]: 3 / 4      //整除
Out[28]: 0

In [29]: 3.0 / 4    //可以得到小数
Out[29]: 0.75

In [30]: 4.0 // 3   //只取整数部分
Out[30]: 1.0

In [31]: 2 ** 2
Out[31]: 4

In [32]: 2 ** 3     //两个星号代表 "乘方"
Out[32]: 8

//在字符串中,+ 代表连接符
In [24]: 'a' + 'b'
Out[24]: 'ab'

In [25]: 'a' + '123'
Out[25]: 'a123'
关系运算符 (返回值为 “Ture” “False”)
代码语言:javascript
复制
In [34]: 2 > 3
Out[34]: False

In [35]: 3 < 5
Out[35]: True

In [36]: 1 >= 3
Out[36]: False

In [37]: 2 >= 2
Out[37]: True

In [38]: 2 == 2
Out[38]: True

In [39]: 2 != 2
Out[39]: False
逻辑运算符
代码语言:javascript
复制
and逻辑与: 两个或多个条件 均 成立 则为 “True”

or逻辑或: 只要一个条件成立 即为 “True”

not逻辑非: 取反!成立取反 则为 “False”
代码语言:javascript
复制
In [40]: 2 == 2 and 2 < 1
Out[40]: False

In [41]: 2 == 2 or 2 < 1
Out[41]: True

In [44]: not 2 < 2
Out[44]: True

如下:

代码语言:javascript
复制
从上到下 优先级 越来越高
        
从左到右 优先级 越来越高
mark
mark
数据类型

各类语言中假如 java或者c 只要定义一个参数需要先声明这个参数是什么类型! 但是python不需要声明,直接定义即可!

代码语言:javascript
复制
a = 10
b = "hello world"
c = 11.11

print(type(a),type(b),type(c))

输出是:

<class 'int'> <class 'str'> <class 'float'>

整型  字符串  浮点型
强制转换:

把如上浮点型的11.11强制转换成int型,后面不管有多少位小数,都会抹去。

代码语言:javascript
复制
print (int(c))

输出就为:
11
布尔类型:
代码语言:javascript
复制
d = True

print(type(d))

输出:
<class 'bool'>
浮点型 float
代码语言:javascript
复制
round(float, ndigits)

Float代表的数字, ngigits代表的是精度 大的规则是四舍六入 在五的情况上是有所不同

例如:

代码语言:javascript
复制
c = 11.15

print(round(c,1))   //保留一位,也就是小数点第二位四舍五入

11.2


c = 11.156

print(round(c,2))   //保留2位,也就是小数点第3位四舍五入

11.16
字符串常用的方法:
代码语言:javascript
复制
strip  字符串过滤空格,(只能过滤最前和最后的空格) 经常需要使用!!
replace   字符串内容替换
find(sub)   字符串中查找sub字符串的内容。如果找到,就返回字符串的下标,找不到就返回 -1。按control+鼠标左键 可以查看具体解释。
format    字符串格式化  
split   切割字符串
mark
mark

如上图:如果忘记一个方法,可以用默认的方法去打印出来,从第二个参数开始了解,第一个参数是他本身,不需要了解!!

replace (旧的值,新的值)

mark
mark

字符串的下标 是从0 开始!

字符串格式化
代码语言:javascript
复制
name = "zhangduanya"
name2 = "www"

print ("hello " + name)
print ("%s hahaha %s" %(name, name2))

hello zhangduanya
zhangduanya hahaha www
---------------------------
name = "zhangduanya"
name2 = 222

print ("hello %s's your age is %d" %(name, name2))

hello zhangduanya's your age is 222
strip:
代码语言:javascript
复制
print (" a1 23b s4d 5 ".strip())

a1 23b s4d 5        //过滤掉了最前和最后的空格
startswith

判断字符串是否以XXX开头

代码语言:javascript
复制
print("asdadqweadsads".startswith("asd"))   

True
join
代码语言:javascript
复制
a = ["a","b","c","d"]
print("&&&".join(a))

a&&&b&&&c&&&d
字符串取值
代码语言:javascript
复制
a = "a1b2c3d4e5"

print(a[1:4])       //从1开始取, “前开后闭”

1b2
--------
a = "a1b2c3d4e5"

print(a[1:])        //从1取到最后

1b2c3d4e5
----
a = "a1b2c3d4e5"

print(a[1:-1])      //从第一位取到倒数第一, “前开后闭” 最后一位不取

1b2c3d4e
list

在定义方面一定要避免 关键字的命名方式:

代码语言:javascript
复制
list = list()  × 应该避免这种

打印1-9这几个数字:

代码语言:javascript
复制
a =list()

for i in range(1,10):
    a.append(i)     //在输出的结果追加
print(a)

[1, 2, 3, 4, 5, 6, 7, 8, 9]

或者 :

代码语言:javascript
复制
print([i for i in range(1,10)])
list的方法:
代码语言:javascript
复制
a = ["aa", "21s", "23as", "11.11"]

a.append()          //追加
a.reverse()         //反转,前面的和后面的对调
a.sort()            //排序
a.pop()             //删除指定下标的元素,但是当你打印的时候,其返回值就是删除的值
a.index()           //返回一个元素的下标
a.insert()          //插入一个元素

当我们去排序一组字符串的时候:

代码语言:javascript
复制
a = ["aa", "21s", "23as", "11.11"]

print(a.sort())

None    //输出结果为None  意味着 a.sort() 没有返回值
---
a = ["aa", "21s", "23as", "11.11"]
a.sort()
print(a)    //这样即可

['11.11', '21s', '23as', 'aa']
-----
a = ["aa", "21s", "23as", "11.11"]
a.pop(2)        //删除指定下标的元素
print(a)

['aa', '21s', '11.11']
---
print(a.pop(2))

23as
---
a = ["aa", "21s", "23as", "11.11"]

print(a.index("11.11"))     //返回“11.11”这个元素的下标

3
---
a = ["aa", "21s", "23as", "11.11"]
a.insert(2, "zhdya")        //在下标2处添加一个元素
print(a)

['aa', '21s', 'zhdya', '23as', '11.11']
input 模块:
代码语言:javascript
复制
In [45]: input("pls input a number: ")
pls input a number: 123
Out[45]: 123

In [46]: input("pls input a number: ")
pls input a number: asd
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-46-01e758e3dda7> in <module>()
----> 1 input("pls input a number: ")

<string> in <module>()

NameError: name 'asd' is not defined

In [49]: input("pls input a number: ")
pls input a number: 'asd'   
Out[49]: 'asd'

//不难发现 input 模块 当你直接输入一个字符串它会当成变量,所以出错!只有加上 单引号 后才不会出错!
raw_input 模块
代码语言:javascript
复制
In [47]: raw_input("pls input a number: ")
pls input a number: 234
Out[47]: '234'

In [48]: raw_input("pls input a number: ")
pls input a number: qwe
Out[48]: 'qwe'

//不管你输入的是数字还是字符串,都会当成字符串来处理!

练习:(4则运算)

  • 要求从键盘读取数字
代码语言:javascript
复制
[[email protected] day01]# cat 3.py 
#!/usr/bin/python


num1 = input("Pls input a number: ")
num2 = input("Pls input a number: ")

print "%s + %s = %s" % (num1, num2, num1+num2)          //  %s 是格式化字符串的意思
print "%s - %s = %s" % (num1, num2, num1-num2)
print "%s * %s = %s" % (num1, num2, num1*num2)
print "%s / %s = %s" % (num1, num2, num1/num2)

[[email protected] day01]# python 3.py 
Pls input a number: 22
Pls input a number: 11
22 + 11 = 33
22 - 11 = 11
22 * 11 = 242
22 / 11 = 2

格式 描述

代码语言:javascript
复制
%% 百分号标记 #就是输出一个%
%c 字符及其ASCII码
%s 字符串
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)
%X 无符号整数(十六进制大写字符)
%e 浮点数字(科学计数法)
%E 浮点数字(科学计数法,用E代替e)
%f 浮点数字(用小数点符号)
%g 浮点数字(根据值的大小采用%e或%f)
%G 浮点数字(类似于%g)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中
python的数据类型(数值+字符串)
代码语言:javascript
复制
In [52]: a = 212222222222222222222222222222

In [53]: type(a)
Out[53]: long       // 长整型

In [56]: 0x25al     // 0x 代表 16进制数
Out[56]: 602L       //转换成了 10进制数

In [57]: 3e+7
Out[57]: 30000000.0

In [59]: type(3e+7)
Out[59]: float

In [60]: 3.0/2
Out[60]: 1.5

In [61]: type(3.0/2)
Out[61]: float
字符串类型–string

有三种方法定义字符串类型

  • str = ‘this is a string’
  • str = ”this is a string”
  • str = ”’this is a string”’

三重引号(docstring)除了能定义字符串还可以用作注释。

代码语言:javascript
复制
In [70]: a = 'hello\nworld'

In [71]: print a
hello
world

//如下这种模式写起来比较好写。
In [73]: a = '''hello
    ...: world'''

In [74]: print a
hello
world
索引:
代码语言:javascript
复制
In [75]: a = 'abcde'

In [76]: a[0]
Out[76]: 'a'

In [77]: a[1]
Out[77]: 'b'

In [78]: a[-1]
Out[78]: 'e'

In [80]: a[0:2]     //从头开始 最后一个字符是不包含在内的
Out[80]: 'ab'

In [81]: a[:2]      //通常0是省略的
Out[81]: 'ab'

In [82]: a[1:]      //从第二个字符开始到最后
Out[82]: 'bcde'

In [83]: a[::1]
Out[83]: 'abcde'

In [84]: a[::2]     // 表示 步长
Out[84]: 'ace'

a b c d e
0 1 2 3 -1
-5 -4 -3 -2 -1      //字符abcde多种表示

In [85]: a[-4:-2]
Out[85]: 'bc'
或者
In [86]: a[1:3]
Out[86]: 'bc'

In [88]: a[-2:-4:-1]    // 最后 -1 表示 反方向 取字符
Out[88]: 'dc'
练习题:
代码语言:javascript
复制
将 “123” 转换成整数
将 “9999999999999999999” 转换成长整数
将 “3.1415926” 转换成一个浮点数
将 123 转换成一个字符串
现有以下字符串
字符串1:" abc deFGh&*ijkl opq mnrst((uvwxyz "
字符串2:" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "
使用字符串的各种方法转换成如下方式
ABCDEFGHIJKLMNOPQRSTUVWXYZzyxwvutsrqponmlkjihgfedcba

—答案:—

代码语言:javascript
复制
In [91]: a = int("123")

In [92]: type(a)
Out[92]: int

In [93]: a = long("9999999999999999999999999999999999999999")

In [94]: type(a)
Out[94]: long

In [95]: a = float("3.1415926")

In [96]: type(a)
Out[96]: float

In [97]: a = str(123)

In [98]: type(a)
Out[98]: str

In [99]: a = " abc deFGh&*ijkl opq mnrst((uvwxyz "

In [101]: b = " ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "

最后一题:

代码语言:javascript
复制
# -*- coding: utf-8 -*-
# @Time    : 12/21/2017 10:15 AM
# @Author  : Zhdya
# @Email   : [email protected]
# @File    : test_1221.py
# @Software: PyCharm

# num1 = input("pls input a number: ")
# num2 = input("pls input a bumber: ")
#
# print "%s + %s =%s" % (num1, num2, num1 + num2)
# print "%s - %s =%s" % (num1, num2, num1 - num2)
# print "%s * %s =%s" % (num1, num2, num1 * num2)
# print "%s / %s =%s" % (num1, num2, num1 / num2)
# --------------------------

# " abc deFGh&*ijkl opq mnrst((uvwxyz "
# " ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "

str1 = " abc deFGh&*ijkl opq mnrst((uvwxyz "
str2 = " ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "

str1 = str1.strip()     # strip() 不指定参数就去掉字符串两端的空格
str2 = str2.strip()

# str3 = "---aaa+++"
# print str3.strip('-+')      # 去掉指定字符

# abc deFGh&*ijkl opq mnrst((uvwxyz
# ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ    #下一步我们去掉不需要的字符+空格

str1 = str1.replace(' ','').replace('&','').replace('*','').replace('(','')      # replace() 替换不需要的字符为(空格即为删除)
str2 = str2.replace(' ','').replace('#','').replace('%','').replace('(*&','').replace('&','')

# 经过如上replace的操作后
# abcdeFGhijklopqmnrstuvwxyz
# ABCDEFGHIJMNOPQKLRSTUVWXYZ
## 继续操作 使用| 分割一下 便于切片
# |abcdeFGhijkl|opq|mn|rstuvwxyz
# |ABCDEFGHIJ|MNOPQ|KL|RSTUVWXYZ

str1 = str1.lower()      # 先把str1中的大写全部转换成小写
str1 = str1.lower()
str1 = str1[0:12] + str1[15:17] + str1[12:15] + str1[17:26]
str2 = str2[0:10] + str2[15:17] + str2[10:15] + str2[17:26]

# abcdefghijklmnopqrstuvwxyz
# ABCDEFGHIJKLMNOPQRSTUVWXYZ        ## 最终达到效果

# 最后一步 ABCDEFGHIJKLMNOPQRSTUVWXYZzyxwvutsrqponmlkjihgfedcba

print str2 + str1[::-1]

# ABCDEFGHIJKLMNOPQRSTUVWXYZzyxwvutsrqponmlkjihgfedcba  最终达到效果(但是这种实在是效率太低!)
字符串的一些方法
代码语言:javascript
复制
#s为字符串
# s.isalnum()  所有字符都是数字或者字母,为真返回 Ture,否则返回 False。
# s.isalpha()   所有字符都是字母,为真返回 Ture,否则返回 False。
# s.isdigit()     所有字符都是数字,为真返回 Ture,否则返回 False。
# s.islower()    所有字符都是小写,为真返回 Ture,否则返回 False。
# s.isupper()   所有字符都是大写,为真返回 Ture,否则返回 False。
# s.istitle()      所有单词都是首字母大写,为真返回 Ture,否则返回 False。
# s.isspace()   所有字符都是空白字符,为真返回 Ture,否则返回 False。

测试:

代码语言:javascript
复制
str1 = " ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "

print filter(lambda x:x.isalpha(),str1) 

# ABCDEFGHIJMNOPQKLRSTUVWXYZ   最后过滤的效果

ambda用于产生一个匿名表达式,组成部分为:lambda + ‘函数表达式’ ‘函数表达式’由一个冒号加上两个‘操作数’组成,如:

lambda x:x*3

冒号左边的操作数,作为函数的参数;冒号右边的作为函数的放回值!
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/06/20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python变量
    • 运算符与表达式
      • Python运算符包括
    • 赋值运算符
      • 算术运算符
        • 关系运算符 (返回值为 “Ture” “False”)
          • 逻辑运算符
          • 数据类型
            • 强制转换:
              • 布尔类型:
                • 浮点型 float
                • 字符串常用的方法:
                  • 字符串格式化
                    • strip:
                      • startswith
                        • join
                        • 字符串取值
                        • list
                        • list的方法:
                          • input 模块:
                            • raw_input 模块
                            • python的数据类型(数值+字符串)
                              • 字符串类型–string
                                • 索引:
                                  • 字符串的一些方法
                              • 练习题:
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档