初学Python02

it2022-05-05  126

(二)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)