在此申明一下,博客参照了https://www.cnblogs.com/jin-xin/,自己做了部分的改动


(1) 程序交互

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 将用户输入的内容赋值给 name 变量
name = input("请输入用户名:")
# 执行脚本就会发现,程序会等待你输入姓名后再往下继续走。
# 打印输入的内容
print(name)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 可以让用户输入多个信息,如下
name = input("What is your name?")
age = input("How old are you?")
hometown = input("Where is your hometown?")
print("Hello ",name , "your are ", age , "years old, you came from",hometown)

(2)格式化输出

现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式

'''
------------ info of 周乾 -----------
Name : 周乾
Age : 23
job : Student
Hobbie: girl
------------- end -----------------
'''

你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势

只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦

name = input("Name:")
age = input("Age:")
job = input("Job:")
hobbie = input("Hobbie:")
info = '''
------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name
Name : %s #代表 name
Age : %s #代表 age
job : %s #代表 job
Hobbie: %s #代表 hobbie
------------- end -----------------
''' %(name,name,age,job,hobbie) # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来
print(info)

%s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入数字啦

# age:%d

我们运行一下,但是发现出错了。。。

说%d需要一个数字,而不是str, what? 我们明明输入的是数字呀,22,22呀。

不用担心 ,不要相信你的眼睛我们调试一下,看看输入的到底是不是数字呢?怎么看呢?查看数据类型的方法是什么来着?type()

name = input("Name:")
age = input("Age:")
print(type(age))

执行输出是

# Name:Alex
# Age:22
# <class 'str'> #怎么会是str
# Job:IT

让我大声告诉你,input接收的所有输入默认都是字符串格式!

要想程序不出错,那怎么办呢?简单,你可以把str转成int

age = int(  input("Age:")  )
print(type(age))

肯定没问题了。相反,能不能把字符串转成数字呢?必然可以,str( yourStr )

问题:现在有这么行代码

msg = "我是%s,年龄%d,目前学习进度为80%"%('周乾',18)
print(msg)

这样会报错的,因为在格式化输出里,你出现%默认为就是占位符的%,但是我想在上面一条语句中最后的80%就是表示80%而不是占位符,怎么办?

msg = "我是%s,年龄%d,目前学习进度为80%%"%('周乾',18)
print(msg)

这样就可以了,第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。

(3)流程控制之--if

  • 假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。

  • if...else 语句

    1.单分支

    if 条件:
    #满足条件后要执行的代码
    # 例子1:
    age = 19
    #if age大于或者等于18:
    if age >= 18:
    print("成年.可以去网吧....") # 例子2
    you = input("你去么?") # 去或者不去
    yourWife = input("你老婆去么?") #去或者不去
    #if you=="去" 或者 yourWife=="去":
    if you=="去" or yourWife=="去":
    print("可以成功的办好某件事情....") # 例子3
    you = input("你去么?") # 去或者不去
    yourWife = input("你老婆去么?") #去或者不去
    #if you=="去" 并且 yourWife=="去":
    if you=="去" and yourWife=="去":
    print("可以成功的办好某件事情....")

    2.双分支

    """
    if 条件:
    满足条件执行代码
    else:
    if条件不满足就走这段
    """
    # 例子1
    AgeOfStudent = 48
    if AgeOfStudent > 50 :
    print("Too old, time to retire..")
    else:
    print("还能折腾几年!") # 例子2
    color = input("你白么?") #白 或者 黄
    money = int(input("请输入你的财产总和:")) #输入1000
    beautiful = input("你美么?")#美 或者 普通
    #if 白 并且 富 并且 美:
    #if 白 and 富 and 美:
    if color=="白" and money>1000000 and beautiful=="美":
    print("白富美....")
    else:
    print("矮矬穷....")

    3.缩进

    你会发现,上面的if代码里,每个条件的下一行都缩进了4个空格,这是为什么呢?这就是Python的一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成立后,去执行哪些代码呢?

    在其它的语言里,大多通过{}来确定代码块,比如C,C++,Java,Javascript都是这样,看一个JavaScript代码的例子

    var age = 56
    if ( age < 50){
    console.log("还能折腾")
    console.log('可以执行多行代码')
    }else{
    console.log('太老了')
    }
    # not的使用,not不是的意思
    a = 30
    if not (a>0 and a<=50):
    print("在0到50之间....")

    在有{}来区分代码块的情况下,缩进的作用就只剩下让代码变的整洁了。

    Python是门超级简洁的语言,发明者定是觉得用{}太丑了,所以索性直接不用它,那怎么能区分代码块呢?答案就是强制缩进。

    Python的缩进有以下几个原则:

    1. 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
    2. 同一级别的代码,缩进必须一致
    3. 官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。

    4.多分支

    回到流程控制上来,if...else ...可以有多个分支条件

    if 条件:
    pass
    # 满足条件执行代码
    elif 条件:
    pass
    # 上面的条件不满足就走这个
    elif 条件:
    pass
    # 上面的条件不满足就走这个
    elif 条件:
    pass
    # 上面的条件不满足就走这个
    else:
    pass
    # 上面所有的条件不满足就走这段
    # 这里每一个条件只要满足其中一个就直接执行后面的代码。执行了一个条件满足后的代码,那么就会推出这个多分支。

    5.我们一块写几个例题

    # 例子1
    age_of_student = 48
    guess = int(input(">>:"))
    if guess > age_of_student :
    print("猜的太大了,往小里试试...")
    elif guess < age_of_student :
    print("猜的太小了,往大里试试...")
    else:
    print("恭喜你,猜对了...") # 例子2
    sex = input("请输入你的性别:")
    if sex == "男":
    print("你是男性,可以留胡子....")
    elif sex == "女":
    print("你是女性,可以留长头发....")
    #elif sex == "中性":
    else:
    print("你是第3中 性别,想干啥就干啥.....") # 例子3
    #1. 获取用户的输入
    num = int(input("请输入一个数字(1~7):"))
    #2. 判断用户的数据,并且显示对应的信息
    if num==1:
    print("星期1")
    elif num==2:
    print("星期2")
    elif num==3:
    print("星期3")
    elif num==4:
    print("星期4")
    elif num==5:
    print("星期5")
    elif num==6:
    print("星期6")
    elif num==7:
    print("星期7")
    else:
    print("你输入的数据有误....")

    上面的例子,根据你输入的值不同,会最多得到3种不同的结果

    再来个匹配成绩的小程序吧,成绩有ABCDE5个等级,与分数的对应关系如下

    # A    90-100
    # B 80-89
    # C 60-79
    # D 40-59
    # E 0-39

    要求用户输入0-100的数字后,你能正确打印他的对应成绩

    score = int(input("输入分数:"))
    if score > 100:
    print("我擦,最高分才100...")
    elif score >= 90:
    print("A")
    elif score >= 80:
    print("B")
    elif score >= 60:
    print("C")
    elif score >= 40:
    print("D")
    else:
    print("太笨了...E")
    # 用户只要满足其中一个条件,那么就会执行后面的代码。当执行了某一个条件时,就会执行对应代码。当执行结束后,# 就会退出这个多分支

    这里有个问题,就是当我输入95的时候 ,它打印的结果是A,但是95 明明也大于第二个条件elif score >=80:呀, 为什么不打印B呢?这是因为代码是从上到下依次判断,只要满足一个,就不会再往下走啦,这一点一定要清楚呀!

    例题:

    # 例子1
    ticket = 1#1表示有车票 0表示没有车票
    knifeLenght = 48#cm
    #先判断是否有车票
    if ticket==1:
    print("通过了车票的检测,进入到了车站,接下来要安检了")
    #判断刀的长度是否合法
    if knifeLenght<=10:
    print("通过了安检,进入到了候车厅")
    print("马上就要见到TA了,很开心.....")
    else:
    print("安检没有通过,等待公安处理....")
    else:
    print("兄弟 你还没有买票了,先去买票 才能进站....") # 例子2
    import random
    #1. 提示并获取用户的输入
    player = int(input("请输入 0剪刀 1石头 2布:"))
    #2. 让电脑出一个
    computer = random.randint(0,2)
    #2. 判断用户的输入,然后显示对应的结果
    #if 玩家获胜的条件:
    if (player==0 and computer==2) or (player==1 and computer==0) or (player==2 and computer==1):
    print("赢了,,,,可以去买奶粉了.....")
    #elif 玩家平局的条件:
    elif player==computer:
    print("平局了,,,洗洗手决战到天亮....")
    else:
    print("输了,,,回家拿钱 再来....")

(4)流程控制之--while...else...

  • 与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句

    i = 1
    while i<=100:
    print("%d"%i) #print(i)
    i = i+1

    while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句

    count = 0
    while count <= 5 :
    count += 1
    print("Loop",count)
    else:
    print("循环正常执行完啦")
    print("-----out of while loop ------")

    输出

    # Loop 1
    # Loop 2
    # Loop 3
    # Loop 4
    # Loop 5
    # Loop 6
    # 循环正常执行完啦
    # -----out of while loop ------

    如果执行过程中被break啦,就不会执行else的语句啦

    count = 0
    while count <= 5 :
    count += 1
    if count == 3:break
    print("Loop",count)
    else:
    print("循环正常执行完啦")
    print("-----out of while loop ------")

    输出

    # Loop 1
    # Loop 2
    # -----out of while loop ------
    # 例子1:
    i=1
    #用来控制行数
    while i<=5:
    #用来控制每一行中的列数
    j = 1
    while j<=5:
    print("*", end="")
    #j = j+1#c语言中向让j加上1的方式: j++; ++j; j+=1; j=j+1;
    j+=1
    print("")
    i = i+1
    # 输出的结果为:
    # *****
    # *****
    # *****
    # *****
    # ***** # 例子2
    i = 1
    while i<=5:
    '''
    #从键盘中输入一个值,这个值用来控制这行中*的个数
    num = int(input("请输入这个行里的*的个数:"))
    j = 1
    while j<=num:
    print("*", end="")
    j+=1
    '''
    j = 1
    while j<=i:
    print("*", end="")
    j+=1
    print("")
    i+=1
    # 输出的结果为:
    # *
    # **
    # ***
    # ****
    # ***** # 例子3
    i = 1
    while i<=9:
    j = 1
    while j<=i:
    print("%d*%d=%d\t"%(j,i,i*j), end="")
    j+=1
    print("")
    i+=1
    # 输出的结果为:
    # 1*1=1
    # 1*2=2 2*2=4
    # 1*3=3 2*3=6 3*3=9
    # 1*4=4 2*4=8 3*4=12 4*4=16
    # 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
    # 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
    # 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
    # 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
    # 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 # 例子4 打印1-100之间的偶数
    i = 1
    while i<=100:
    #if i是个偶数:
    if i%2==0:
    print(i)
    i+=1 # 例子5 打印1-100之间的前20个偶数
    i = 1
    num = 0
    while i<=100:
    #if i是个偶数:
    if i%2==0:
    print(i)
    num+=1
    if num==20:
    #break的作用 用来结束while循环,
    #即 如果在while执行的过程中,不想循环了,可以用break来做到这个效果0:
    break
    i+=1

(5)流程控制之--for...else...

# 这里补充一个知识点是in 和not in,见名知意即可
# in 和 not in 见名知意即可,在或者不在
# s1 = '学生edu'
# print('学' in s1) # True
# print('学生' in s1) # True
# print('学ed' in s1) # False
# print('学ed' not in s1) # True # for循环的讲解
s1 = '写博客大师最无聊的人:周乾'
'''





'''
# while循环的使用
# index = 0
# while index < len(s1):
# print(s1[index])
# index += 1
# for循环的使用
'''
for循环是有限循环,可以再有限的循环的步骤里面做完相应的事情
for 变量 in iterable
pass
'''
length = len(s1)
print(length) # 输出的是长度 # for循环的使用
for i in s1:
print(i)
# for循环与break 和 continue 结合使用
# for else : while else:用法是一样的 # for i in 'afdsf':
# print(i)
# break continue
s1 = 'fadadnasj'
# for i in s1:
# # print(i)
# if i == 'a':
# continue
# print(i)
# 不打印,但是也循环了,每次continue就跳到下一次循环了
for i in s1:
continue
print(i)

(6)break的用法

break的用法:break是结束循环。遇见break,我们就退出循环,终止循环。也可以用break语句在循环结构终止本层循环体,从而提前结束本层循环。

flag = True
print(111)
while flag:
print('痒')
print('社会摇')
print('喜洋洋')
break
print('我要这铁棒有何用')
print(222)
# 输出的结果为:
# 111
# 痒
# 社会摇
# 喜洋洋
# 222 i = 1
while i<=5:
print("-----")
if i==3:
break
print(i)
i+=1
# 输出的结果为:
# -----
# 1
# -----
# 2
# ----- count = 0
while count <= 5 :
count += 1
if count == 3:break
print("Loop",count) else:
print("循环正常执行完啦")
print("-----out of while loop ------")

(7)continue的用法

continue的用法:continue是循环。遇见continue,我们就,终止本次循环。continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。

flag = True
print(111)
while flag:
print('痒')
print('社会摇')
print('喜洋洋')
continue
print('我要这铁棒有何用')
print(222)
count = 0
while count < 10:
count = count + 1
if count == 7:
continue
print(count)
# 输出的结果为:
# 1
# 2
# 3
# 4
# 5
# 6
# 8
# 9
# 10
count = 0
while count <= 100 :
count += 1
if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop
continue
print( count)
# 输出的结果为:
# 1
# 2
# 3
# 4
# 5
# 95
# 96
# 97
# 98
# 99
# 100
# 101

(8)break和continue的区别

  • break:终止循环
  • continue:终止本次循环
  • break和continue的区别:break会跳出当前循环,也就是整个循环都不会执行了。而continue则是提前结束本次循环,直接继续执行下次循环。

(8)基本运算符

  • 运算符

    计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算、成员运算

  • 算数运算

    以下假设变量:a=10,b=20

    a = 10
    b = 20
    print(a+b)
    print(a-b)
    print(a*b)
    print(a**b)
    print(a/b)
    print(a//b)
    # 输出的结果为:
    # 30
    # -10
    # 200
    # 100000000000000000000
    # 0.5
    # 0
  • 比较运算

    以下假设变量:a=10,b=20

    a = 10
    b = 20
    print(a == b)
    print(a != b)
    print(a > b)
    print(a < b)
    print(a >= b)
    print(a <= b)
    # 输出的结果为:
    # False
    # True
    # False
    # True
    # False
    # True

  • 赋值运算

    以下假设变量:a=10,b=20

    a = 10
    b = 20
    print(a, b)
    # 输出的结果为:10,20
  • 逻辑运算

  • 针对逻辑运算的进一步研究:

    1.在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

    例题:

    判断下列逻辑语句的True,False。

    # 1,3>4 or 4<3 and 1==1
    # 2,1 < 2 and 3 < 4 or 1>2
    # 3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
    # 4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8
    # 5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 66,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

    2 . x or y , x为真,值就是x,x为假,值是y;

    x and y, x为真,值是y,x为假,值是x。

     

    例题:求出下列逻辑语句的值。

    # 8 or 4
    # 0 and 3
    # 0 or 4 and 3 or 7 or 9 and 6
  • 成员运算

    除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

    ​ 判断子元素是否在原字符串(字典,列表,集合)中:

    ​ 例如:

    # print('喜欢' in 'dkfljadklf喜欢hfjdkas')
    # print('a' in 'bcvd')
    # print('y' not in 'ofkjdslaf')
  • Python运算符优先级

    以下表格列出了从最高到最低优先级的所有运算符:

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符

python基础--程序交互、格式化输出、流程控制、break、continue的更多相关文章

  1. JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结

    JAVA之旅(二)--if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结 JAVA的思想真的很重要,所以要专心的学-- ...

  2. Python基础一(格式化输出、流程控制)

    (1)格式化输出(%% 第一个% 转译) # 格式化 输入 输出 name = input("Name:") age = input("Age:") job = ...

  3. python基础--数据类型、运算符、流程控制

    原文地址:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143165862 ...

  4. Day1[下] - Python基础1 基本语法、流程控制

    一.变量\字符编码 Variables are used to store information to be referenced and manipulated in a computer pro ...

  5. python基础:if判断与流程控制案例

    # 1.使用while循环输出1 2 3 4 5 6 8 9 10 count = 0 while count < 11: if count == 7: count += 1 continue ...

  6. 【python基础】第08回 流程控制 for循环

    本章内容概要 1.循环结构之 for 循环 本章内容详解 1.循环结构之for循环 1.1 语法结构 for 变量名 in 可迭代对象: #字符串 列表 字典 元组 for 循环的循环体代码 针对变量 ...

  7. Python的用户交互程序及格式化输出

    1.  用户输入 在Python 3 中,用户输入用input()函数即可实现用户交互程序. 例如,我们根据程序提示输入用户名和密码,并且打印输入的信息. 2. 字符串格式化输出 例如,我们根据程序提 ...

  8. Python黑帽编程2.4 流程控制

    Python黑帽编程2.4  流程控制 本节要介绍的是Python编程中和流程控制有关的关键字和相关内容. 2.4.1 if …..else 先上一段代码: #!/usr/bin/python # - ...

  9. python -- while循环,格式化输出,运算符,初识编码

    一.while循环 1.语法 while   条件: 循环体(结果) 如果条件为真,则直接执行结果),然后再次判断条件,知道条件为假,停止循环. while True: print('你是谁呢') 退 ...

随机推荐

  1. js动态添加iframe,自适应页面宽高

    function showIframe(url,w,h){ //添加iframe var if_w = w; var if_h = h; $("<iframe width='" ...

  2. Maven、Gradle 配置国内镜像源

    Maven 全局配置 修改 Maven 默认的全局配置文件: 类 Unix 系统: Mac OS / Linux 默认在 ~/.m2/settings.xml Windows 系统:一般在 Maven ...

  3. Understanding REST and RESTful APIs

    Understanding REST and RESTful APIs If you've spent any amount of time with modern web development, ...

  4. mysql 赋权语句

    grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';

  5. [C# WPF] 关于将文本框竖起来(旋转文字)

    xx.xmal.cs 后台代码中动态添加控件到 UI 文字显示在一个 Canvas 中(定位用Canvas.SetLeft() / Canvas.SetTop() ), 为了实现排版效果,可适当在 T ...

  6. 5.List链表类型介绍和操作

    数据类型List链表 (1)介绍 list类型其实就是一个双向链表.通过push,pop操作从链表的头部或者尾部添加删除元素.这使得list既可以用作栈,也可以用作队列. 该list链表类型应用场景: ...

  7. CORS漏洞利用检测和利用方式

    CORS全称Cross-Origin Resource Sharing, 跨域资源共享,是HTML5的一个新特性,已被所有浏览器支持,不同于古老的jsonp只能get请求. 检测方式: 1.curl访 ...

  8. golang内置类型和内置函数

    golang内置类型和内置函数是不需要引入包直接可用的 golang内置类型: 数值类型 string int,unint float32,float64 bool array 有长度的 comple ...

  9. Chisel3 - bind - Wire, Reg, MemPort

    https://mp.weixin.qq.com/s/AxYlRtAXjd55eoGX5l1W-A   模块(Module)从输入端口(input ports)接收输入,经过内部实现的转换逻辑,从输出 ...

  10. Java实现 LeetCode 811 子域名访问计数 (暴力)

    811. 子域名访问计数 一个网站域名,如"discuss.leetcode.com",包含了多个子域名.作为顶级域名,常用的有"com",下一级则有" ...