Python数据类型、变量、格式化输出
1. 输出 Hello wrold
1.1 终端运行
- 打开cmd,输入python进入到python交互式环境:(看到>>>是在Python交互式环境下:)
- 在python交互环境下输入以下代码:print("Hello,world!")
1.2 文件运行
- 新建txt文本文档,改后缀名为.py。用notepad++打开编辑文档内容并保存:
#!/usr/bin/env python-----声明要使用的解释器类型
print “Hello,World!”
- 打开cmd,进入到python交互式环境中,运行.py文件(如下图所示):
2. 数据类型和变量
2.1 数据类型
2.1.1 整数
Python可处理任意大小的整数,在程序中的表示方法和数学上的写法完全一样。
2.1.2 浮点型
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。
2.1.3 字符串
字符串是以''或""括起来的任意文本;
1)字符串内部既包含'
又包含",可用转义字符\来标识;如:I'm “OK”! 在python中应输入print("I\'m \“OK\”!")
2)转义字符\本身也可被转义; print("\\")
2.1.4 布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True
、False
两种值,要么是True
,要么是False
,在Python中,可以直接用True
、False
表示布尔值(请注意大小写),也可以通过布尔运算计算出来。布尔值可以用and
、or
和not
运算。
2.1.5 空值
空值是Python里一个特殊的值,用None
表示。None
不能理解为0
,因为0
是有意义的,而None
是一个特殊的空值。
2.2 变量
2.2.1 什么是变量
变量就是用来在程序运行期间存储各种需要临时保存可以不断改变的数据的标识符,一个变量应该有一个名字,并且在内存中占据一定的存储单元,在该存储单元中存放变量的值。
2.2.2 变量的定义规则:
变量名要见名知意,不能瞎写,瞎写到后面自己都看不懂那个变量是干啥的,不要用拼音,那样很low,更不要用中文当变量名,那是2b程序员干的事,但是python的确可以用中文当变量名!
变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
2.2.3 变量在计算机内存中的表示
当我们写:name="cc"时,Python解释器干了两件事情:
1)在内存中创建了一个'cc'的字符串;
2)在内存中创建了一个名为name的变量,并把它指向'cc'。
这时候把变量name赋值给另一个变量name1,这个操作实际上是把变量name1指向变量name所指向的数据,与变量name并无任何关系;若name值变化,name1的值依然无变化;
原因:字符串特性,一旦修改,重新创建
name的值发生变化,相当于重新开辟了一块内存空间;而name1依然指向原有内存空间。
2.3 常量
量就是不能变的变量,比如常用的数学常数π就是一个常量。
在Python中,通常用全部大写的变量名表示常量:如 ABC
3. 输入、输出
输入:
python怎么来接收用户输入呢,使用input函数,python2中使用raw_input,接收的是一个字符串,代码入下:
name=input('Please enter your name:') #把接收到的值赋给name变量
print(name) # 输出接收到的输入 # 取消换行 print("Hello",end=" ") # end 以空格结尾 print("world",end=" ")
input在接收输入的时候,是可以看到你输入的值的,如果是输入密码这样的呢,不想让别人看到你的密码,怎么办呢,就需要用到一个标准库,getpass,什么是标准库呢,就是不需要你再去安装,装完python就有的库,就是标准库,getpass就是一个标准库,导入进来之后,直接使用getpass.getpass方法就可以在输入的时候,不回显了,代码如下:
import getpass #导入getpass模块 password = getpass.getpass('Please enter your password:') #接收输入的密码 print(password)
4. 字符串格式化
- 字符串 %s
1
|
print ( "Hello,%s" % "world" ) |
- 整数 %d
1
|
print ( "My age is %d" % 20 ) |
- 浮点数 %f
1
|
print ( "My age is %f" % 20 ) |
4.1 格式化输出
方式一: %
name = input("what is your name?") age = int(input("tell me you age:")) job = input("job?") salary = input("salary!") info = ''' ---- info of ------ name:%s age:%d job:%s salary:%s ''' % (name,age,job,salary) print(info)
方式二: .format
print("name:{}, age:{}".format("张三",14)) print("name:{0}, age:{1}".format("李四",16)) print("name:{_name}, age:{_age}".format(_name="王五",_age=18)) # 列表 print("name:{name[0]}, age:{age[2]}".format(name = ["马六","孙七"],age = [22,33,44])) # 字典加元组 print("name:{name[sq]}, age:{age[2]}".format(name = {"ml":"马六","sq":"孙七"},age = (22,33,44)))
format 填充符号的使用
""" ^ 原字符串居中显示 > 原字符串居右显示 < 原字符串居左显示 {who:*^10} * : 填充的符号 ^ : 原字符串居中显示 10: 原字符串长度 + 填充符号的长度 = 10 """ strvar = "{who:*^10}, {do:>>10}, {feel:!<10}".format(who="张三",do="李四",feel="王五") print(strvar)
# 结果
>>>:****张三****, >>>>>>>>李四, 王五!!!!!!!!
format 占位符
# (6)进制转换等特殊符号的使用( :d :f :s :, ) # :d 整型占位符 (强制要求类型是整型) strvar = "刘一峰昨天晚上买了{:d}个花露水泡脚".format(9) print(strvar) # :3d 占3位,不够三位拿空格来补位(原字符串居右) strvar = "刘一峰昨天晚上买了{:3d}个花露水泡脚".format(9) print(strvar) strvar = "刘一峰昨天晚上买了{:<3d}个花露水泡脚".format(9) print(strvar) strvar = "刘一峰昨天晚上买了{:^3d}个花露水泡脚".format(9) print(strvar) # :f 浮点型占位符 (强制要求类型是浮点型) 默认保留小数6位 strvar = "王雨涵毕业之后的薪资是{:f}".format(9.9) print(strvar) # :.2f 小数点后保留2位,存在四舍五入 strvar = "王雨涵毕业之后的薪资是{:.2f}".format(9.188888) print(strvar) # :s 字符串占位符 strvar = "{:s}".format("杨元涛真帅") print(strvar) # :, 金钱占位符 strvar = "{:,}".format(12345678) print(strvar) # 综合案例 strvar = "{:s}开工资{:.2f}元,买了{:d}个兰博基尼".format("孙坚",300000.12345,10) print(strvar)
方式三:f"字符串{变量名}"
name = "Jack" aa = 19 print(f"他的名字是{name},他今年{aa} ")
5. 密码密闻输入
1
2
3
|
import getpass password = getpass.getpass( 'Enter password: ' ) print password |