python变量
在python中定义变量的时候,不用申明类型,只用直接写名字就ok,上面的程序是设置了一个名为name的变量,其值为hello word,然后将其值赋给name1,然后将值输出,结果为
这里要注意一点,name赋值给name1,那么这二者的值现在是一样的,但是二者没有其它关系,就是说一个改变不会影响另一个的改变,不是引用关系。
还有一点,在python中没有常量,但有一种默契就是变量名写成全大写,意思就是告诉其它开发者,我把它当成了常量,其他人不要改变。
python值为汉字时的编码问题
这是因为在2.7版本中,如果不指定编码集,它会默认使用ascii码去处理,但是ascii中没有这些对应的编码,所以会出问题,所以需要指定,而这个问题在3版本就完美结果,因为它默认使用utf-8解决编码问题。
# -*- coding: utf-8 -*-
使用这个命令写在第一行,作用就是以后使用utf-8来进行编码,不要再用ascii来编码了
注释
单行注释使用 #被注释内容
多行注释使用"""被注释内容"""
多行注释使用'''被注释内容'''
多行注释,是三个双引号或者三个单引号
多行注释,当多行注释赋值给一个变量的时候,相当于多行的字符串
虽然被注释了,但是把他赋值给了d,并且输出,结果为
也就是说多行注释,在赋值给一个变量的时候就是一个字符串
用户交互程序
如何获取用户输入的内容
基本格式为
这个程序在运行的时候,会输出到控制台age,然后此时我们输入年龄,然后就赋值给了age,然后他又会输出www,此时我们再次输入,输入的值会复制给www,最后输出
注意一点这个是2.版本的python所以要是想输入字符串需要用双引号给引上,不然会出错,因为2的input有一个特性就是你给他输入什么类型他就是什么类型,如果把huanfeng没有用引号给引起来的话,那么系统会默认huanfeng是一个变量,这样的结果就是会导致变量未定义异常,而3版本不会,不论你输出什么类型他都会来按照string类型来处理,也就是控制台上输入数字,其实也是被引号给引起来的,所以我们录入的数据如果是数字我们要想进行加减乘除,可以使用int()进行强转
我们可以通过isdigit()方法来判断控制台输入的是否是数字,如果是数字,那么就强转成int型,这样就可以进行增删该查了。
格式化输出
上面的格式化输出结果是
要想实现这个,应该想到刚才介绍的多行注释,因为它可以把很多行引起来,并且保持原有格式,这里要使用一个%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,比如
这是格式化的一种方式,这种方式就是%s,%d,一一对应,还有一种格式化的方式,和他差不多使用{索引}来定位(索引从0开始),演示:
这个是多行字符串.format(索引0值,索引1值)比如上面的程序就是name对应上面的所有{0},age对应上面的所有{1}
以上两种之所以说类似是因为他们必须准确的对应好,如果一个格式化串有上百个变量,那么很容易出错,所以常用方式三
这种方式方式采用的是键值对的方式,在info中指定键,在设置值的时候采用键=值的形式,没有必要关心前后顺序,只要设置好就行,所以这种方式比较好
补充一点单行字符串.format也可以使用,多行字符串.format是为了格式化的输出
将输入的数据,密文处理,如输入密码
要想完成操作需要import getpass,然后使用的方式是
不用input来操作了,而是通过getpass.getpass来操作,这样输入的时候就是密文输入了,就是不显示输入,当然getpass,在pycharm没法用,这里就不演示了
if--else
要注意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循环基本格式
死循环为
while true:
while循环还可以和else搭配使用
只要循环条件不成立就执行else,也就是说循环执行完成之后就会执行else,但要注意一点,这个执行完成之后,指的是正常执行完成之后,而不是break强制完成
flag=False
可以while flag:
还可以while not flag:
不可以 while !flag:
for循环
这个程序是i是变量随便定义,rang(10)代表0123456789,每for一次就将0123456789中的一个数赋值给i,然后执行print语句,输出i
使用for循环控制循环3次
for循环也可以和else一起搭配使用
for i in rang(3)实际等于for i in rang(0,2,1)这个是从0到2,每次增长1,这个1就是步长,所以就是0,1,2
间隔2来输出演示
閱讀更多 幻風的AI之路 的文章