python学习:python的变量以及编码的问题,如何格式化输出?

python变量

python学习:python的变量以及编码的问题,如何格式化输出?

在python中定义变量的时候,不用申明类型,只用直接写名字就ok,上面的程序是设置了一个名为name的变量,其值为hello word,然后将其值赋给name1,然后将值输出,结果为

python学习:python的变量以及编码的问题,如何格式化输出?

这里要注意一点,name赋值给name1,那么这二者的值现在是一样的,但是二者没有其它关系,就是说一个改变不会影响另一个的改变,不是引用关系。

还有一点,在python中没有常量,但有一种默契就是变量名写成全大写,意思就是告诉其它开发者,我把它当成了常量,其他人不要改变。

python值为汉字时的编码问题

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?

这是因为在2.7版本中,如果不指定编码集,它会默认使用ascii码去处理,但是ascii中没有这些对应的编码,所以会出问题,所以需要指定,而这个问题在3版本就完美结果,因为它默认使用utf-8解决编码问题。

# -*- coding: utf-8 -*-

使用这个命令写在第一行,作用就是以后使用utf-8来进行编码,不要再用ascii来编码了

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?

注释

单行注释使用 #被注释内容

多行注释使用"""被注释内容"""

多行注释使用'''被注释内容'''

多行注释,是三个双引号或者三个单引号

多行注释,当多行注释赋值给一个变量的时候,相当于多行的字符串

python学习:python的变量以及编码的问题,如何格式化输出?

虽然被注释了,但是把他赋值给了d,并且输出,结果为

python学习:python的变量以及编码的问题,如何格式化输出?

也就是说多行注释,在赋值给一个变量的时候就是一个字符串

用户交互程序

如何获取用户输入的内容

基本格式为

python学习:python的变量以及编码的问题,如何格式化输出?

这个程序在运行的时候,会输出到控制台age,然后此时我们输入年龄,然后就赋值给了age,然后他又会输出www,此时我们再次输入,输入的值会复制给www,最后输出

python学习:python的变量以及编码的问题,如何格式化输出?

注意一点这个是2.版本的python所以要是想输入字符串需要用双引号给引上,不然会出错,因为2的input有一个特性就是你给他输入什么类型他就是什么类型,如果把huanfeng没有用引号给引起来的话,那么系统会默认huanfeng是一个变量,这样的结果就是会导致变量未定义异常,而3版本不会,不论你输出什么类型他都会来按照string类型来处理,也就是控制台上输入数字,其实也是被引号给引起来的,所以我们录入的数据如果是数字我们要想进行加减乘除,可以使用int()进行强转

python学习:python的变量以及编码的问题,如何格式化输出?

我们可以通过isdigit()方法来判断控制台输入的是否是数字,如果是数字,那么就强转成int型,这样就可以进行增删该查了。

格式化输出

python学习:python的变量以及编码的问题,如何格式化输出?

上面的格式化输出结果是

python学习:python的变量以及编码的问题,如何格式化输出?

要想实现这个,应该想到刚才介绍的多行注释,因为它可以把很多行引起来,并且保持原有格式,这里要使用一个%s来实现这个操作

info="""----person---
age:%s
name:%s
""" %(age,name)

这是一个整体,意思就是说age对应的值为%s,name也对应一个%s,至于这个%s是什么,则和后面的%(age,name)对象,也就是说第一个%s是age,第二个%s是name,结果输出之后就是格式化输出效果了

除了%s,还会有%d,%f之类的,但是要注意3版本会把所有的输入类型都按照String来处理,所以要想使用%d,就需要将输入的string类型给强转成对应的%d,或者%f的类型

python中使用type(变量)可以看出该变量的类型,如果输入的是11,则也会按照string来处理,然后可以使用int(变量)来将string变量处理成int类型复制给%d,比如

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?

这是格式化的一种方式,这种方式就是%s,%d,一一对应,还有一种格式化的方式,和他差不多使用{索引}来定位(索引从0开始),演示:

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?

这个是多行字符串.format(索引0值,索引1值)比如上面的程序就是name对应上面的所有{0},age对应上面的所有{1}

以上两种之所以说类似是因为他们必须准确的对应好,如果一个格式化串有上百个变量,那么很容易出错,所以常用方式三

python学习:python的变量以及编码的问题,如何格式化输出?

这种方式方式采用的是键值对的方式,在info中指定键,在设置值的时候采用键=值的形式,没有必要关心前后顺序,只要设置好就行,所以这种方式比较好

补充一点单行字符串.format也可以使用,多行字符串.format是为了格式化的输出

将输入的数据,密文处理,如输入密码

要想完成操作需要import getpass,然后使用的方式是

python学习:python的变量以及编码的问题,如何格式化输出?

不用input来操作了,而是通过getpass.getpass来操作,这样输入的时候就是密文输入了,就是不显示输入,当然getpass,在pycharm没法用,这里就不演示了

if--else

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?

要注意python执行严格的缩进程序,就是说只要它不是一个语句的子程序,他就应该顶头写,如果是,就应该以其父类为标志缩进写,python中没有 else if,它的表示形式是elif

最后补充一点:age=11,则age是int类型

age="11",则age是String类型

而age=input("age"),无论输入的age是什么类型,input方式获取的age都是string类型

所以如果年龄进行大小比较时,要将input输入的age,强转成int再来比较大小

if 条件:

pass

pass可以在if while for中用,条件成立,执行pass,pass就是什么效果都没有,就是当作一个没有任何效果的执行体来用

while循环

while循环基本格式

python学习:python的变量以及编码的问题,如何格式化输出?

死循环为

while true:

while循环还可以和else搭配使用

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?

只要循环条件不成立就执行else,也就是说循环执行完成之后就会执行else,但要注意一点,这个执行完成之后,指的是正常执行完成之后,而不是break强制完成

flag=False

可以while flag:

还可以while not flag:

不可以 while !flag:

for循环

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?

这个程序是i是变量随便定义,rang(10)代表0123456789,每for一次就将0123456789中的一个数赋值给i,然后执行print语句,输出i

使用for循环控制循环3次

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?

for循环也可以和else一起搭配使用

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?

for i in rang(3)实际等于for i in rang(0,2,1)这个是从0到2,每次增长1,这个1就是步长,所以就是0,1,2

间隔2来输出演示

python学习:python的变量以及编码的问题,如何格式化输出?

python学习:python的变量以及编码的问题,如何格式化输出?


分享到:


相關文章: