while True:
print('我是小马过河')
#四、用while从一打印到10html
#五、请经过循环,1 2 3 4 5 6 8 9 10 python
#备注:连续的对其中一个不作相同的操做(连续数字指ide
定其中一个不打印)post
#自我注解:无限循环,死循环用while。ui
小结:编码
死循环无限循环while ;有限循环for;知足条件中止循环if知足就break;
须要输入input;须要序列range()或定义自增循环;循环中某个不操做if知足条件continue,pass;for 用range能省去while的循环计数url
判断变量是否是某种类型:
if type(变量) == 数据类型:(str ,list,tuple,dict)
print(数据类型)spa
#注意Python彷佛不能用i++,能够i+=1
code
count=0 while count<10: count=count+1 print(count) #从1到10,(0,10)先自增 count=0 while count<=9: count = count + 1 print(count) #从1到10,(0,9]先自增 count=0 while count<10: count +=1 print(count) #从1到10,(0,10)先自增,自增能够count=count+1;count+=1;若是自增为一个变量,那么count+=变量 count=1 while count<11: print(count) count = count + 1 #[1,11),先其它操做后自增 count=1 while count<=10: print(count) count = count + 1 #[1,10]先其它操做后自增
#给本身的建议:程序须要从几到几,按照第一种方式,先自增后其它,实现循环次数后再作操做,自增放在前面防止思路弄乱,方便本身阅读。
#须要添加倒着循环的
#备注:连续的对其中一个不作相同的操做(连续数字指 定其中一个不打印) #自我注解 连续数字一个不打印至关于不等于它就打印,或者等于它就跳过本次循环后面的操做 count=0 while count<10: count=count+1 if count != 7: print(count) 先打印出1-10,而后去掉7 count=0 while count<10: count=count+1 if count == 7 : continue print(count) print(""" 1 3 4 5 6 8 9 10""") count=0 while count<10: count=count+1 if count == 7 : pass else: print(count) 6 8-10
count=0 while count<10: count = count + 1 print(count) else: print("再也不知足while的条件时,即whil返回值为False时执行这里,break等跳出循环的操做是否 执行else后面语句,看返回值")
#自我注解:循环(正常)结束才执行的代码,非正常结束不执行代码
#添加:上面为循环作完了作什么操做,添加一个循环作完了而后作知足某种条件的才作某种操做,不然是另外一种操做。(使用flag)
一、s% 指定占位符宽度orm
name=["mcw","小马过河","魔降风云变"] print("%s和%s"%(name[0],name[1])) --------------结果: mcw和小马过河
print("name:%s"%("mcwhr")) #指定占位符宽度
print("name:%3s"%("mcwhr"))
print("name:%6s"%("mcwhr"))
print("name:%8s"%("mcwhr"))
print("name:%12s"%("mcwhr"))
print("name:%8.2f"%(3.1415926))
--------------结果:
print ("Name:%s Age:%d Height:%.2f"%("mcw",18,1.64)) #加-加数字,可实现几列对齐排序
print ("Name:%-s Age:%-d Height:%-.2f"%("mcw",18,1.64))
print ("Name:%10s Age:%8d Height:%8.2f"%("mcw",18,1.64))
print ("Name:%-10s Age:%-8d Height:%-8.2f"%("mcw",18,1.64))
print ("Name:%-12s Age:%-12d Height:%-12.2f"%("mcw",18,1.64))
-------------------------结果:
问题一:%s格式化输出缺乏传参出现的错误 name=["mcw","小马过河","魔降风云变"] print("%s和%s"%(name[0])) --------结果: print("%s和%s"%(name[0])) TypeError: not enough arguments for format string (格式字符串的参数不足) 问题二:%s传参数量多于接收的数量报错 name=["mcw","小马过河","魔降风云变"] print("%s和%s"%(name[0],name[1],name[2])) ----------------结果: print("%s和%s"%(name[0],name[1],name[2])) TypeError: not all arguments converted during string formatting (并不是全部参数都在字符串格式化过程当中转换)
问题三:缺乏一个右半边括号报错:
name=["mcw","小马过河","魔降风云变"]
print("%s和%s"%(name[0],name[1])
-------------结果:
SyntaxError: unexpected EOF while parsing (分析时出现意外的EOF)
二、%d #取整数
print("You have %d books"%(23.4)) ------------结果: You have 23 books %d能够取整,而%s却不能取整 print("You have %s books"%(23.4)) --------------结果: You have 23.4 books
三、%% #打印一个%号,要用另外一个%转义,不要被%s的%所影响。
print("我有%s%%的把握"%(80)) -----------------结果: 我有80%的把握
四、%f #打印浮点数,以及指定打印小数位位数
print("我支付宝只有%f的余额"%(250.25)) --------------结果: 我支付宝只有250.250000的余额
print("我支付宝只有%.3f的余额"%(250.25))
-------------结果:
我支付宝只有250.250的余额
#%f能够打印出后面的浮点数,彷佛是6位小数。而%s写的啥就输出的啥
print("我支付宝只有%s的余额"%(250.25))
--------------结果: 我支付宝只有250.25的余额
参考:https://www.cnblogs.com/claidx/p/7253288.html
字符串格式化存在的意义
name = input('姓名:') do = input('在干什么:') template = "%s在教室,%s。" %(name,do,) print(template)
直接作占位符
template = "我是%s,年龄%s, 职业%s。" %("mcw",73,'讲鸡汤',)
print(template)
template = "我是%s,年龄%d, 职业%s。" %("mcw",73,'讲鸡汤',)
print(template)
name = 'mcw'
template = "%s如今手机的电量是100%%" %(name,)
print(template)
占位符%s既能够表示字符串str,还能够表示整数int,浮点数float;
占位符%d既能够表示整数int,还能够表示浮点数float(去除整数部分)
占位符%f既能够表示浮点数float,还能够表示整数int(默认保留6位小数)
注意:若想自主保留n位小数,可将其表示位%.nf
自我注解:格式化输出"%s"%(传的值),打印%就要再加一个%
问题:若是后面%s和后面的参数个数不一致会是什么状况?
pycharm改解释器版本
count=0
while count<100:
count=count+1
if count%2 != 0:
print(count)
#自我注解:除以2取余为0的是偶数。条件可得偶数,须要奇数,条件取反就得奇数。
count=0 sum=0 while count<100: count=count+1 sum=sum+count print(sum)
#注解:count自增实现循环,sum将每次循环的count加到sum里,实现count1-100的循环求和
zongshu=0 num=1 while num<11: if num==1: zongshu=zongshu+num elif num !=1: b=num%2 if b==False: zongshu=zongshu+num elif b==True: zongshu=zongshu-num num=num+1 print(zongshu)
bool() 数字和字符串转布尔类型,0和空字符串是False,空格是True.布尔值转换数字为0和1,转换为字
符串为字符串。 int() 字符串转数字,数字转字符串 str()
#须要增长数据类型转换
#注意:彷佛由此判断变量的值,而后对值进
"""
对于 or,若是有遇到 value= 1 or 9 第一个值若是是转换成布尔值若是是真,则value=第一值。 第一个值若是是转换成布尔值若是是假,则value=第二值。 若是有多个or条件,则从左到右依次进行上述流程。 示例: v1 = 0 or 1 v2 = 8 or 10 v3 = 0 or 9 or 8 """
#注解:or遇到假,日后走,遇到第一个真,就返回这个值。遇到全为假,返回最后那个值 $找真找到就停
v1= 0 or 0 or False v2=0 or False or 0 print(v1,v2)
""" 对于and,若是遇到 value= 1 and 9 这种状况 若是第一个值转换成布尔值是True,则value=第二个值。 若是第一个值转换成布尔值是False,则value=第一个值。 若是有多个and条件,则从左到右依次进行上述流程。
#注解:and遇到假就停,返回假的值。没有假,返回最后一个值 $找假,找到就停
示例:
v1 = 1 and 9 v2 = 1 and 0 v3 = 0 and 7 v4 = 0 and "" v5 = 1 and 0 and 9 j_str = "v1=%s v2=%s v3=%s v4=%s v5=%s" %(v1,v2,v3,v4,v5) print(j_str) #v1=9 v2=0 v3=0 v4=0 v5=0
行判断作对应的操做 第一个值转换布尔值若是是真,则value=第一个值 第一个值转换布尔值若是是假,则value=第二个值 若是有多个or条件,则从左到右依次
从左到右进行判断,遇到真即中止继续判断
and 遇到0就0,遇到空就空,都么遇到就是最后那个,同时遇到谁在前就是谁?
unicode如今基本ecs4,小表情ecs4,ecs2不包括 gbk gb2312,其中一个是另外一个的升级,多一点。两者用两个字节存储汉字。 不少开源组件是国外的,用的是utf-8,建议用utf-8的编码