2018-08-23字符串、if语句、for,while循环(day4)

一、字符串的格式化

格式化%(格式符对应的值)
说明:%是固定的格式;()也是固定格式
带格式符的字符串中有几个格式符,那么后面的括号中就必须有几个和它一一对应的值。

符号 描述
%s 格式化字符串
%d 格式化整数
%f 格式化浮点数 , %.nf 保留小数点后n位小数
%c 格式化字符及其ASCII码   可以将数字转换成字符拼接到字符串中
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%u 格式化无符号整型
%o 格式化无符号八进制数**
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址

1.%s 的用法

first_name = '魏'
middle_name = '世'
last_name = '强'
age = 23
name = first_name + middle_name + last_name
print(name)   结果:魏世强
new_name = 'Hello, %s%s%s! 今年%d岁'
%(first_name,middle_name,last_name,age)
print(new_name)  结果:Hello, 魏世强! 今年23岁

2.%f 的用法

money = 110
str1 = '我有%.2f元.'%(money) 
print(str1)  结果 我有110.00元.

3.%c的用法

a:
unit = '$'
str2 = '我有%.2f%c.' %(money,unit) 
print(str2)  结果:我有110.00$.
b:
char_code = 98
str3 = '%d对应的字符是%c' %(char_code,char_code)
print(str3)  结果:98对应的字符是b

4.%x, %X的用法

num = 100
str4 = '%d的十六进制是:0x%x' % (num,num)
print(str4)  结果:100的十六进制是:0x64

二、数据类型转换(int float bool str)

1.数据类型的自动转换

a = 12  整型(int)
b = 22.5  浮点型(float)
result = a + b   会自动将整型a,转换成浮点型,然后再计算
print(type(result)) 结果:<class 'float'>

result2 = a + True  会自动将布尔值转换成整型1
print(result2)  结果: 13

2.强制转换

基本语法:类型名(需要转换的数据)

a.将其他数据转换成int类型
print(int(12.9))  结果:12  
float ---> int :去掉小数点和小数点后面的数
print(int(True),int(False)) 结果 1,0
 bool --->int:True为1,False为0

去掉字符串的引号后,字符串的内容本身就是一个整数的时候,才能被转换
成整型
print(int('-123'))  结果:-123  可以转换
print(int('123.3'))  不能转换
b.将其他的数据类型转换成float类型

整数、布尔值、部分字符串

print(float(100))  结果:100.0  int--->float:在整数后加.0
print(float(True),float(False)) 结果:1.0,0.0
bool--->float:True:1.0,False:0.0
去掉引号后,字符串的内容本身就是一个整数或者浮点数的时候,
才能被转换成浮点型
print(float('2e3'),float('12.5'),float('123'))
结果:2000.0, 12.5, 123.0
c.将其他的数据类型转换成bool

所有的数据类型的数据都可以转换成bool
数字中:除了0是False,其它都为True
字符串中:除了空串,其他的都是True
总结:所有为空,为0的值全都是False。否则就是True

print(bool(0.000)) 结果:False
print(bool(''))  结果:False
print(bool([]))  结果:False
print(bool(None))  结果:False
d.其他类型转换成字符串

所有的数据都可以转换成字符串,转换的时候就是在数据的外面加引号

print(str(100),str(18.1)) 结果:'100’,'18.1'

三、if语句

Python中的分之结果只有一种:if分之结果

1.if

语法:
if条件语句:
  执行语句块
说明:

a.if:Python中的关键字(如果),用来做判断
b.条件语句:最终结果会被转换成布尔值
c.冒号:冒号是固定写法,必须写
d.执行语句块:可以是多行语句,但是每行语句必须和前面的if保持一个缩进(tab键)

执行过程:先判断条件语句的结果是否为True,如果为True就执行冒号后面的执行语句块。否则直接执行if模块后的其他语句块。

age = 23
if age >= 18:
    print('成年')  结果:成年

score = 91
if score > 90:
    print('优秀')  结果:优秀

2.if-else

语法:
if条件语句
  执行语句块1
else:
  执行语句块2
其他语句
说明:

a.else:关键字(注意加冒号)
b.执行过程:先判断条件语句的结果是否为True,如果为True就执行语句块1,执行完语句块1在执行其他语句;如果为False就执行语句块2,在执行完语句块2后再执行其他语句。
age = 17
if age >= 18:
    print('成年')
else:
    print('未成年')
结果:未成年

3.if-elif-else

语法:
if 条件语句1:
  语句块1
elif 条件语句2:
  语句2:
……
else:
  语句块n
其他语句

练习:成绩大于90为优秀,成绩在80到90之间为良好,
成绩在60到79之间为及格,60分以下为不及格.

score = 55
if score > 90:
    print('优秀')
elif score >= 80:
    print('良好')
elif score >= 60:
    print('及格')
else:
    print('不及格')
结果:不及格

4.if语句的嵌套

注:每个if分之中都可以嵌套其他的if语句
if 条件1:
  执行语句1
  if 条件2:
    执行语句2
  else:
    执行语句3
else:
  执行语句4

练习:成绩在90分,并且年龄大于18岁奖金100W,年龄小于18岁奖金200W.

score = 90
age = 16
if score >= 90:
    if age >= 18:
        print('100W')
    else:
        print('200W')
else:
    print('No')
结果:200W

5.产生随机数

a.import是Python是导入模块或者模块中内容的关键字
b. random是Python内置的产生随机数的模块
import random
number= random.randint(10,20)   产生一个10到20的随机整数,并且
存到number中
print(number)
结果:随机整数

import random
number = random.randint(0,100)
print('随机数是:%d' %(number))
if number % 2 == 0:
    print('偶数')
    if number %4 == 0:
        print('能够被4整除')
else:
    print('奇数')
结果:随机整数

7.判断一个数是否是偶数的两种写法

number = 11
 入门
if number % 2 == 0:
    print('偶数')
进阶
if not number % 2:
    print('偶数')
else:
    print('奇数')

str1 = 'abc'
入门
if str1 =='':
    print('是空串')
else:
    print('不是空串')
if len(str1) == 0:
    print('是空串')
else:
    print('不是空串')
 进阶
if str1:
    print('是空串')
else:
    print('不是空串')

四、for循环

注:在完成某个功能的时候,如果需要重复某个操作,就可以使用循环。
Python中循环结构有两种:for循环和while循环

1.for循环的结构

for 变量名 in 序列:
  循环体
说明:

a.for:关键字
b.变量名:和声明变量时的变量名的要求一样
c.in:关键字
d.序列:容器(数据本身是由多个数据组成),

列如:字符串、列表、字典、元祖、集合、range、生成示和生成器(迭代器)

e.循环体:需要重复执行的代码
for x in 'abc123':
    print((x))
结果:a,b,c,1,2,3

2.range函数是python中内置函数,作用是产生指定范围中的数字

a.range(N):产生 0 ~ N-1的索引整数
b.range(N,M):产生 N ~ M-1的所有整数
c.range(N,M,step): 产生从N开始,每steo产生一个整数,到M之前
for x in range(10):
    print(x)
结果:1,2,3,4,5,6,7,8,9
print('=================')
for x in range(10,21):
    print(x)
结果:10,11,12,13,14,15,16,17,18,19
print('=================')
for x in range(1,11,2):
    print(x)
结果:1,3,5,7,9
print('=================')

练习:1到1000之内能整除3的数字有多少个

i = 0
for x in range(1,1001):
     if x%3 == 0:
        i+=1
print(i)
结果:333

五、while循环

1.结构:
TIM图片20180823191008.png

while条件语句:
  循环体

2说明:

a.while:关键字
b.条件语句:结果是True或False
c.循环体:要重复执行的代码

3.执行过程:

判断条件语句的结果是否为True,如果为True就执行循环体,执行完循环体在判断条件语句是否为True,如果为True就执行循环体直到条件语句的结果为False


x = 1
i = 0
while x<= 5:
     print(x)
结果:1,2,3,4,5
练习:求x,y的最终值
x = 1
i = 0
while x<= 5:
    x+=1
    i += x
print(i)
结果:x=6  i=20
x = 1
i = 0
while x<= 5:
    i += x
    x += 1
print(i)
结果:x=5  i=15

4.for循环和while循环的比较:

for循环次数是有限的,并且是固定();while循环的次数不确定

for循环:1.遍历序列中的值 2.循环次数确定

while:1.死循环 2.循环次数不确定

练习:求10000之后第一个能整除23的数字

x = 10001
while not x % 23 == 0:
    x+=1
print(x)
结果:10005
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容

  • 春天 花开了 这样的春天 你走远 像流去的春江 抚摸碧绿的船舷 记得你送我一本书的时候 是上一个秋天 晚开的丛菊积...
    青木城阅读 128评论 1 0
  • 在mybatis里,曾经踩过几次坑,也用了一些mysql的技巧来应用数据库的功能减少编码的复杂性,尤其是批量操作,...
    灰袍甘道夫阅读 733评论 1 2
  • 暑假和补课之间有八天假期,忽然起意去爬泰山。和小伙伴一起的旅行,从来都是佛系旅行说走就走不做任何攻略。出发前夜备行...
    Zora_gu阅读 677评论 0 0
  • 在我的殴豆桑还月薪300块的时候,也是计划生育正值最严的时候。欧豆桑最大的堂姐的儿子就要生二胎了。 当时,在怀孕前...
    凡笑笑笑笑笑阅读 262评论 1 1
  • 有时候早上醒来,迷离着双眼坐在床上,会突然问自己:人生的意义到底是什么?我为什么要起床?写论文有什么用?每天...
    梅花庄里排第五阅读 438评论 4 6