一、变量与简单数据类型
1.Hello World
hello_world.py中输入:
print("Hello World")
运行,然后会看到一下输出:
Hello World
具体流程:运行hello_world.py时,末尾的.py表明这是一个python程序,因此使用python解释器来运行。python解释器会读取整个程序,然后按照既定的方式运行。
2.变量
下面使用一个变量来输出Hello World
message = "Hello World"
print(message)
运行这个程序就会发现输出与之前相同。
message就是一个变量,存储了一个字符串值,然后用print将其打印出来。
message = "Hello World"
print(message)
message = "Yep"
Print(message)
运行后,两个字符串都会被打印出来,但最后message中保存只有最新的字符串值。
更加深入的探讨一下变量:
对于
message = "Hello World"
初学者可能会以为message保存的就是这个字符串的值,毕竟用print打印它显示出来的就是字符串,实际上并不是这样。
先说结论:python变量保存的是这个值的引用,即变量是内存地址的别名。
python赋值的过程:
- 创建对象"Hello World"
- 变量message引用该对象
- 完成赋值
如下图
变量存储的只是值所在的内存地址,而不是这个变量本身。因此,Python变量所需要的存储空间大小都是一致的。而有些语言不是这样,变量所占的空间就是按照变量的实际大小决定,例如C语言中,int和char类型占用空间就不一样。
message = "Hello World"
print(id(message))#1726747630384
message2 = message
print(id(message2))#1726747630384
message3 = "Hello World"
print(id(message3))#1726747630384
#预备知识
#python内置函数id()会查看对象的身份,也就是对象的内存地址
#3个变量地址相同,表明指向的都是同一个变量
2.1变量的命名和使用
命名注意事项:
- 变量名只能能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头。
- 变量名不能包含空格,但可使用下划线来分隔其中的单词。
- 不要将Python关键字和函数名用作变量名。
- 变量名应既简短又具有描述性。
3.字符串
字符串就是一串字符,用引号引起来,可以是双引号也可以是单引号。
"This is a string."
'This is also a string.'
#如果字符串本身就包含单双引号,那么最好用另一种引号
"This is a 'STRING'"
#3个引号
#通常情况下我们用单引号或者双引号定义一个字符串的时候只能把字符串连在一起写成一行
#要想保存多行字符串,可以使用三个引号
"""
Hello
World
Cup"""
3.1字符串操作
首字母大写
name = "hello world"
print(name.title())# Hello World
全部大写或小写
name = "Hello World"
print(name.upper())#HELLO WORLD
print(name.lower())#hello world
合并字符串
one = "Hello"
two = "World"
three = "Cup"
print(one + two + three) #Hello World Cup
添加空白
#\t添加制表符
print("python")#python
print("\tpython")# python
#添加换行符 \n
print("Hello\nWorld")
#Hello
#World
删除字符串首尾空白
str = " Hello World "
print(str)# Hello World
print(str.strip())#Hello World
#strip()删除首尾空白,rstrip()删除尾部空白,lstrip()删除头部空#白
#删除操作是暂时的,要想保留操作需要将结果存到变量中
4.数字
4.1整数
#加
2 + 3
#减
2 - 3
#乘
2 * 3
#除
3 / 2#1.5
#整除
3 // 2# 1 向下取整
#乘方
3 ** 2 #9
4.2浮点数
0.1 + 0.1 #0.2
2 * 0.1 #0.2
但有些时候,包含的小数位数可能是不准确的。
0.2 + 0.1
#0.30000000000000004
原因:浮点数(小数)在计算机中实际是以二进制存储的,并不精确。
比如0.1是十进制,转换为二进制后就是一个无限循环的数:
0.000110011001100110011001100110011001100110011001100110
python是以双精度(64bit)来保存浮点数的,后面多余的会被砍掉,所以在电脑上实际保存的已经小于0.1的值了,后面拿来参与运算就产生了误差。
解决办法:使用decimal库
5注释
注释用#,#后面的内容都会被Python解释器忽略
#你好
print("Hello")
多行注释
"""这里是
多行注释"""
python之禅
import this
"""
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
"""
6总结
- 学会了输出字符串
- 学会使用变量,变量的命名,变量的深入理解
- 了解了字符串,学会使用若干个字符串的操作
- 学会如何使用整数,浮点数
- 学会使用注释