初学Python02

(二)Python流程控制

2.1if条件分支语句

Python条件语句就是通过一条或者多条语句执行结果(True or Flase)来决定执行代码块。

  • if单分支语句
if 逻辑语句:
   语句(块)

demo:

learning = "Python"
if learning == "Python":
    print("好巧啊")
  • if双分支语句
if 逻辑语句1:
     语句(块)1
else:
     语句(块)2

demo:

learning = input("请输入你学习的编程语言")
if learning == "Python":
    print("好巧啊")
else:
    print("原来你在学习java")
  • if多分支语句

C语言中

if
     if
         if
             else
         else
  else           

Python中,elif:else if缩写成elif

if 逻辑语句1:
    语句(块)1
elif 逻辑语句2:
      语句(块2...
elif 逻辑语句 n-1:
     语句(块)n-1
else:
    语句(块)n

根据百分制考试成绩返回五级分制成绩:

score =int(input("考试成绩"))

if score>=90 :
    print("A")
elif  score>=80:
    print("B")
elif score>=70:
    print("C")
elif  score>=60:
    print("D")
elif  score>=0:
    print("E")

从控制台输入一个三位数,判断其是否为水仙花数

153 = 1 3 + 5 3 + 3 3 1^3+5^3+3^3 13+53+33

A = int(input("输入一个三位数"))
a = A // 100
b = (A-a*100)//10
c = A-b*10-a*100
e = a**3+b**3+c**3
if A == e:
    print("是水仙花数")
else:
    print("不是水仙花数")

2.2while语句

  • 循环语句
    • 所谓循环,就是用来执行部分代码在一定条件下重复执行的代码。

格式:

while:
    语句(块)

(1)利用while来打印1-100的数字:

i = 0
while True:
    i+=1
    print(i)
    if i ==100:
        break

(2)利用while来求1-100的和

count = 0
sum = 0
while count<=100:
    sum += count
    count += 1
print(sum)

(3)利用while求1-100内所有的偶数和。

count = 1
sum = 0
while  count<=100:
       count+=1
       if count%2 == 0:
           sum+=count
print(sum)

(4)求100-999内所有水仙花数

count = 99
while  count<999:
       count+=1
       a = count // 100
       b = count % 100 //10
       c = count % 10 
       e = a ** 3 + b ** 3 + c ** 3
       if count == e:
           print(count)

2.3for循环

Python中for,可以用来遍历任何序列(字符串,列表,元祖,etc)

格式:

for i in 序列:
    语句(块)

1.range()

range(end) #[0,end-1],end为整数

range(start, end)#[start,end-1],两数均为整数

range(start,end,step)#[start,start+step,start+2*step,...,end]

2.4break 和 continue

  • break用来结束一个循环,跳出循环体。
  • continue终止本次循环的动作,直接进入下次循环

2.5while…else…

count = int(input("Enter a INT:"))
while count <= 5:
      print(count,end=" ")
      count += 1
      if count ==3:
          break
else:
      print("这里是else语句")

2.6for…else…

while…else…,for…else…中while和else是一块的,for和else也是一块的。

当有break或者return的时候就会跳出while。如果没有break或者return,不管while是否执行,都会执行else语句

2.7字符串

(1)什么是字符串

  • 用引号引起来的一串字符
  • 用引号来创建字符串
    • 单引号
    • 双引号
    • 三单引号
    • 三双引号

注意:

  • 单引号和双引号使用时需要注意匹配关系,且不可以换行
  • 如果需要换行,需使用三单引号或者三双引号

(2)字符串的运算及常见操作

a:拼接

demo:

a = ["hello"]
b = [",Python"]
print(a+b)   #拼接基于同一种数据类型
b:重复

demo:

a = "6"
print(a * 3)
c:索引(偏移)
  • 切片 [start : end:step ] start,start+step,start+step*2+…end-1

demo:

sr = "Python"
for i in range(len(sr)):
    print(sr[i],end=" ")
    
sr = "Python"
for i in range(len(sr)):
    print(sr[:i],end=" ")    
    
d:大小写转换

sr = “Life is short,you need python”

  • sr.lower():转小写
  • sr.upper():转大写
  • sr.swapcase():大小写互换
  • sr.title():转为标题形式
  • sr.capitalize():首字母大写

demo:

certid = "AbCd"
ipt = input("请输入验证码:")
if ipt.lower() == certid.lower():
    print("输入成功")
else:
    print('对不起,输入有误,请重试')

e:字符串的格式输出对齐

sr = “Life is short,you need python”

  • sr.center([len],[填充符号]),居中对齐
  • sr.ljust([len],[填充符号]),居左对齐
  • sr.rjust([len],[填充符号]),居右对齐
  • sr.zfill([len]),居右对齐,默认填充0

demo:

sr = "Life is short,you need python"
print(sr.center(41,"*"))
print(sr.ljust(41,"#"))
print(sr.rjust(41,"#"))
print(sr.zfill(41))
d:删除指定字符
  • sr.strip()
  • sr.lstrip()
  • sr.rstrip()

demo

sr = "\n\t******Life is short,you need python******\n\t"    #\n换行\t 一个tap键
print(sr.strip())   # 默认删除\n\t
print(sr.strip("*"))   #从头开始匹配,匹配不成功则无效
e:计数
  • sr.count()

demo:

sr = "\n\t******Life is short,you need python******\n\t"
print(sr.count("o",20,41))
f:字符串搜索定位和替换
  • sr.find( ),查找元素并返回第一次出现的元素的索引值 ,查找不到返回-1

  • sr.index( ),查找元素并返回第一次出现的元素的索引值,查找不到元素会报错

  • sr.rindex( ),从右往左查找元素并返回第一次出现的元素的索引值

  • sr.replace( [现有],[替新]),

    demo:

    sr = "\n\t******Life is short,you need python******\n\t"
    print(sr.find("z",12,41))
    print(sr.index("e",19,41))
    print(sr.replace("you need","I use"))
    print(sr.replace("t","T",1))   
    
g:字符串条件判断
  • sr.isalnum(),判断的字符串有字母或者数字组成

  • sr.isalpha(),仅有字母

  • sr.isdigit(),仅有数字

    demo:

    a = "wangzixin666eeee"
    b ="666"
    print(a.isalnum())
    print(b.isalpha())
    print(b.isdigit())
    
h:制表符的转化
  • sr.expandtabs()
i:字符串的分割
  • join( ),将指定字符插入到元素之间
  • sr.split( ),以指定字符分割字符串并去除该字符
  • partition( ),以指定字符分割并保留该字符

demo:

sr = "Life is short,you need python"
print("+".join(sr))
li = ["I","Love","you"]
print(" ".join(li))         
print(sr.split("o",2))     #分割返回的都是列表
print(sr.partition("o"))   #第一个就停止切割了
j:ASCII值和字符的转化
  • chr( )digit—>alpha 数字转化为字母
  • ord( )alpha —>digit 字母转化为数字

demo:

for i in range(ord("a"),ord("z")+1):
    print(chr(i),end=" ")
k:格式化字符串
%格式化
print("%d" % 6688)
name = "Tom"
age = 18
print("His name is %s,his age is %d."%(name,age))
print("His name is",name,",his age is ",age,".")
占位符
格式描述
%d有符号的整数
%s字符串
%c字符及ASCII
%o无符号八进制整数
%x/%X无符号十六进制整数
%e/%E浮点数,科学计数法
%f浮点数

%格式化字符串 用%匹配参数,注意个数一一对应。

"%d%%"  % 100  
format格式化
  • 位置映射

    print("Name:{},age:{}".format("Tom",18))
    
  • 关键字映射

print("Name:{},age:{},{address}".format("Tom",18,address ="gongshu,hangzhou"))#关键字必须放最后
  • 元素访问
print("第一个元素是:{0[0]},第二个元素是:{0[1]},第三个元素是:{0[2]};第四个元素是:{1[0]},"\
      "第五个元素是:{1[1]}".format(("www","google","com"),("baidu.","com")))
string模块
import  string
print(dir(string))
print(string.ascii_letters) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 字母大小写
print(string.ascii_lowercase) #abcdefghijklmnopqrstuvwxyz  小写字母
print(string.ascii_uppercase) #ABCDEFGHIJKLMNOPQRSTUVWXYZ   大写字母
print(string.capwords("abcdefg"))  #Abcdefg   首字母大写
print(string.digits)  #0123456789   0-9数字
print(string.hexdigits) #0123456789abcdefABCDEF 打印16进制的数字和字母
print(string.octdigits) #1234567   打印8进制的数字
print(string.printable) #打印所有ASCII
print(string.punctuation) #!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~打印所有特殊符号
print(string.whitespace)  #打印空白符
print("%o" % 17)   #十进制转8进制
print("%x" % 17)   #十进制转16进制

2.8print函数

(1)print()函数查看内部文件

>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

语法格式:

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

等价于:

print(value1,value2,value3 ..., sep=' ', end='\n', file=sys.stdout, flush=False)

课后作业:

  • 设计"过7游戏"的程序,打印出1-100之间除了含7和7的倍数之外的所有数字

    for i in range(1,101):
        if  i%10==7 or i//10==7 or i%7==0:
           continue
        else:
           print(i)
    
  • 编写程序用户登录程序仅有三次机会。(if和for)

    import getpass
    for i in range(3):
        number= input("账号")
        password = getpass.getpass("密码")   #不显示明文
        if  number== "wangzixin" and password == "123456":
            print("登录成功")
            break
        else:
            print("账号或密码有误")
    
  • 编写程序实现,判断一串字符串是否为有效变量名

    import string
    alpha = string.ascii_letters+"_"
    nums = string.digits
    myinput = input("输入字符串")
    if len(myinput)>1:
          if myinput[0] not  in alpha:
                print("无效变量名称")
          else:
                for otherChar in myinput[1:]:
                      if otherChar not in alpha + nums:
                            print("存在非字母下划线数字字符,无效变量名称")
                            break
                      else:
                            print("有效变量名")
    else:
         print("请重新输入一遍")
    
  • 最多猜10次数字的游戏,猜测范围1~100,根据input内容提示猜大或者猜小,如果猜中,结束循环

import random
num = int(input("猜数字"))
realnum = random.randint(1,100)
for i in range(10):
    if num == realnum:
        print("你猜对了")
        break
    elif num>realnum:
        print("大了")
        num = int(input("猜数字"))
    elif num<realnum:
         print("小了")
         num = int(input("猜数字"))
  • 用while循环实现输出2-3+4-5+6…+100的和。

    i=1
    sum=0
    while i<=99:
          i+=1
          if i%2==0:
             sum+=i
          else:
              sum=sum-i
    print(sum)
    
  • 使用循环实现九九乘法口诀表。

    for i in range(0, 10):
        for j in range(1, 10):
            if i >= j:
                print("%d * %d = %d" % (j, i, i * j,), end="  ")
        print( )
    
  • 已知列表li=[22478,24066,23398,38498],利用字符串拼接及遍历,输出结果“城市学院”。

    li=[22478,24066,23398,38498]
    x=str()
    for i in range(len(li)):
        x=x+chr(li[i])
    print(x)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值