栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python的基础语法(python语法手册)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python的基础语法(python语法手册)

Python基础2-基本语法 for 循环

我们已经学过了if..else...进⾏程序的流程控制,也写了猜年龄的⼩游戏。 可是每次启动后只能猜⼀次, 如果我希望⽤户猜不对时可以重复猜,可怎么办?
哈,那就需要⽤到接下来循环的知识了。

语法
for i in range(10):
 print(i)

上⾯代码,会从0-9,共循环10次,这个range(10),其实是相当于产⽣了⼀个从0到9的列表,每循环⼀次,就会把列表⾥的下⼀个元素取出来给临时变量i.

print( list(range(10)) ) # 可以验证range(10) 就是产⽣了⼀个列表
list1 = list(range(10))
print(type(list1))
print(list1)
循环猜年龄

需求: 最多允许猜三次,猜对了就退出程序

black_gf_age = 24
for i in range(3):
 guess = int(input("猜猜⿊姑娘多⼤了>>:"))
 if guess > black_gf_age:
 print("猜的太⼤了,往⼩⾥试试...")
 elif guess < black_gf_age:
 print("猜的太⼩了,往⼤⾥试试...")
 else:
 exit("恭喜你,猜对了...") # 退出程序
打印奇偶数
for i in range(50, 100): # 可以定义区间
 if i % 2 == 1:
 print(i)
循环嵌套

⼀栋楼有5层,每层8间屋⼦,要求你把本楼所有的房间号打印⼀遍, 格式“1层-104”, “2层-205“

for i in range(1,6):
 for j in range(1,9):
 print(f"{i}层-{i}0{j}室")
break & continue break & continue

像上边循环嵌套⼩节那个打印楼层的⼩程序,需求改了, 遇到第3层时,不打印任何房间号,其它层都打印。这个怎么实现呢?

continue

continue的语法作⽤是, 只要程序⼀遇到continue, 本次循环就不继续了,直接进⼊下⼀次循环

for i in range(1,6):
 for j in range(1,9):
 if i == 3:
 continue # 跳过本次循环,继续下次循环
 print(f"{i}层-{i}0{j}室")
break

break的语法作⽤是,只要程序遇到break, 就会结束当前这个循环, 注意如果是多层嵌套循环,只结束当前这⼀层的循环。

for i in range(1, 6):
 for j in range(1, 9):
 if i == 3:
 print("不⾛3层.......")
 continue # 跳过本次循环,继续下次循环
 if i == 4 and j == 4: # 遇到404
 print("遇到⻤屋404了,不再继续了")
 break # 结束当前循环, 注意只会结束第2层这个⼩循环。
 print(f"{i}层-{i}0{j}室")
打印三⻆形

打印这样的形状

*
**
***
****
*****
****
***
**
*

解题思路,10次循环,前5次打印 i * “" , 后5次打印 (10-i) * "

n = 10
for i in range(n):
 if i < 5:
 print(i*"*")
 else:
 print( (n-i) * "*")
while 循环

与for必须指定循环多少次不⼀样的是, while 循环的次数可以是不定的,只要条件满⾜就可以永远循环下去

语法
while 条件: # 只要条件为真, 就会不断的循环
 print(xxxxx)
死循环
count = 0
while True: # 条件永远为真
 print("第{count}次循环....")
 count += 1
循环10次

这样就形成了跟for i in range(10)⼀样的效果

count = 0
while count < 10:
 print("第{count}次循环....")
 count += 1
⽤while 实现循环猜年龄

需求: 允许⽤户猜3次,若还不对,告诉他,你真笨,还想继续猜么? 如果⽤户选择yes, 就让他继续,如果选择no, 就退出。

black_gf_age = 25
count = 0
while True:
 count += 1
 if count <= 3:
 guess = int(input("猜猜⿊姑娘多⼤了>>:"))
 if guess > black_gf_age:
 print("猜的太⼤了,往⼩⾥试试...")
 elif guess < black_gf_age:
 print("猜的太⼩了,往⼤⾥试试...")
 else:
 exit("恭喜你,猜对了...") # 退出程序
 else:
 choice = input("猜了3次还不对,真是笨呀,还玩么? [y/Y or n/N]").strip()
 if len(choice) == 0 : continue # 不能写空值
 if choice in ("y","Y"):
 count = 0
 elif choice in ("n","N"):
 exit("bye.")
 else:
 print("请输⼊正确的选项...")

练习题

按如下格式打印99乘法表

1x1=1
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 
for i in range(9):
    for j in range(9):
        if i >= j:
            print(f"{i+1}*{j+1}={(i+1)*(j+1)}",end=' ')
    print()


1*1=1 
2*1=2 2*2=4 
3*1=3 3*2=6 3*3=9 
4*1=4 4*2=8 4*3=12 4*4=16 
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 

Process finished with exit code 0
京牌摇号⼩程序

需求:

    允许⽤户最多选3次每次放出20个⻋牌供⽤户选择京[A-Z]-[xxxxx], 可以是数字和字⺟在组合 想实现这个程序 ,

有2个问题要解决:

    如果实现输出随机值

    随机值需限定在⼤写字⺟,和数字范围内,不能有其它特殊字符。 这就要⽤到⼀些超纲知识, random模块和string模块。 Python的模块库是个宝藏,想实现任何功能它 都有现成的模块供你调⽤

random模块

可以产⽣指定范围内的随机数、字符串等

>>> import random # 导⼊random模块
>>>random.choice("abcdefghi") # 参数也可以是⼀个列表
'd'
>>> s = "abcdefghijklmn"
>>> random.sample(s,3) # 从数据源s中随机取出3个值
['b', 'a', 'k']
>>> random.randint(1,100) # 打印⼀个随机数
79
string 模块
>>> import string # 导⼊string模块
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # ⼤写字⺟
>>> string.ascii_lowercase # ⼩写字⺟
'abcdefghijklmnopqrstuvwxyz'
>>> string.punctuation # 打印特殊字符
'!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~'
>>> string.digits # 打印数字
'0123456789'
代码实现
import random
import string
car_num_sample = string.digits+string.ascii_uppercase
print(random.sample(car_num_sample,5))
count = 3
while count > 0 :
 count -= 1
 num_list = []
 for i in range(20):
 second_letter = random.choice(string.ascii_uppercase)
 car_num = f"京{second_letter}-{
''.join(random.sample(car_num_sample,5)) }"
 num_list.append(car_num)
 print(i, car_num)
 choice = input("choice:").strip()
 if choice in num_list:
 exit(f"恭喜你选购成功,您的新⻋牌是{choice}")
 else:
 print(f"未选中, 还有{count}次机会")

综合练习 年会抽奖程序

张三科技有限公司有300员⼯,开年会抽奖,奖项如下:

    ⼀等奖 3名, 泰国5⽇游⼆等奖6名,Iphone⼿机三等奖30名,避孕套⼀盒

规则:

    共抽3次,第⼀次抽3等奖,第2次抽2等奖,第3次压轴抽1等奖每个员⼯限中奖⼀次,不能重复

解题思路:

    ⽣成⼀个员⼯列表,⽤random模块从⾥⾯取随机值取完值之后,⽴刻从员⼯⼤列表⾥把中奖⼈删掉,即可防⽌其再次中奖
import random
import string

worker_list = []
for i in range(300):
    worker_list.append(random.sample(string.ascii_lowercase,5))
    
for i in range(3):
    print(f"现在抽取{3-i}等奖")
    tag = random.choice(range(300-i+1))
    print(f"中奖人为{''.join(worker_list[tag])}")
    del worker_list[tag]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773071.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号