"""
1.獲取字符
字符串[下標]
字符串[開始下標:結束下標:步長]
字符串[開始下標:結束下標]
字符串[::步長]
字符串[::-1] -> 讓字符串倒序
2.相關運算
+, * >,<, >=, <=, ==, !=
in / not in
len()
3.格式字符串
帶有占位符的字符串 % (值列表)
%s
%d
%.Nf
%c
4.相關方法
"""
"""
python中的分之結構只有if語句,沒有switch
1.什么時候需要使用if
如果做某件事情(執(zhí)行某段代碼)需要滿足某個條件才行,就考慮使用if
2.怎么使用if
格式1: if結構
a.語法1:
if 條件語句:
代碼段1
其他語句
b.說明:
if - 關鍵字, 是如果的意思
條件語句 - 任意一個有結果的語句,最好結果是布爾,如果不是布爾值,在判斷的時候會轉換成布爾
: - 固定寫法, 在python中,只要有冒號,冒號后面的第一行必須有縮進。
冒號縮進組合形成代碼段,相當于其他語言中的大括號
代碼段1 - 和if保持一個縮進的語句。也可以是一行語句,也可以是多行語句。
c.執(zhí)行過程: 先判斷條件語句的結果是否為True,如果為True就執(zhí)行代碼段1,然后再執(zhí)行后邊的其他語句;
如果為False,就不執(zhí)行代碼段1,直接執(zhí)行if外邊的其他語句
"""
age = 26
print('你可以東莞玩兒!')
if age >= 18:
print('你可以東莞玩兒!')
print('可以進網吧') # 和if保持一個縮進的代碼,都是滿足if后邊的條件才會執(zhí)行的代碼
print('======') # 沒有和if保持一個縮進的代碼,不管條件是否滿足都會執(zhí)行
總結:需要滿足某個條件才執(zhí)行的語句就寫在if里面, 不管條件十分滿足都要執(zhí)行的語句,寫在if的外面
練習: 輸入一個數(shù),如果這個數(shù)能夠被3整除,就打?。?xxx是3的倍數(shù)'
num = int(input('請輸入一個數(shù)字:'))
if num % 3 == 0:
print('%d是3的倍數(shù)' % num)
"""
結構二: if-else結構
a.語法:
if 條件語句:
代碼段1
else:
代碼段2
其他語句
b.說明
else - 關鍵字,固定寫法; 相當于否則,不滿足if條件的其他情況
c.執(zhí)行過程: 先判斷條件語句是否為True, 如果為True就執(zhí)行代碼段1,否則執(zhí)行代碼段2
"""
練習: 輸入一個整數(shù),如果這個數(shù)是偶數(shù)就打印'xx是偶數(shù)', 不是偶數(shù)就打印'xx是奇數(shù)'
if num % 2 == 0:
print('%d是偶數(shù)' % num) # 滿足條件才執(zhí)行
else:
print('%d是奇數(shù)' % num) # 不滿足條件才執(zhí)行
print('==========') # 不管滿不滿足條件都執(zhí)行
練習: 輸入一個字符串,判斷字符串的開頭是否是小寫字母,如果是,將字符串第一個字符轉換成大寫字母并打印。否則直接打印
例如:輸入'aBc=123' -> 'ABc=123' 輸入'1abc' -> '1abc' 輸入'胡sh823' -> '胡sh823'
str1 = input('請輸入一個字符串:')
first_char = str1[0] # 獲取第一個字符
if 'a' <= first_char <= 'z':
print('第一個字符是小寫字母')
print(first_char.upper()+str1[1:])
else:
print('第一個字符不是小寫字母')
print(str1)
"""
結構三: if-elif-else結構
a.語法:
if 條件語句1:
代碼段1
elif 條件語句2:
代碼段2
elif 條件語句3:
代碼段3
...
else:
代碼段n
其他語句
b.說明
elif - 關鍵字; 在前面的條件不滿足的前提下,判斷其他條件是否滿足
c.執(zhí)行過程:先判斷條件語句1是否成立,如果成立直接執(zhí)行代碼段1,然后整個if結構結束,接著執(zhí)行其他語句;
如果條件語句1不成立,再判斷條件語句2是否成立。如果成立直接執(zhí)行代碼段2,然后整個if結構結束,接著執(zhí)行其他語句;
以此類推, 如果條件語句都不成立,就執(zhí)行else后面的代碼段n
注意:a.后邊的條件語句的判斷都是在前面的條件不成立的前提下執(zhí)行的
b.else不是一定要寫,根據情況后面的else結構可以沒有!
"""
salary = 2000
if salary <= 5000:
print('家中游!')
elif salary <= 10000:
print('同城游!')
elif salary <= 15000:
print('國內游!')
else:
print('國外游!')
練習:
先打印:
請選擇: 1 -> 提示輸入姓名、電話、年齡
2 -> 提示輸入要查看學生的名字
3 -> 打印目前正在修改學生信息
4 -> 打印目前正在刪除學生信息
5 -> 打印退出
補充:python中可以使用三個雙引號或者是哪個單引號括起來,來表示一個字符串;這種字符串中可以直接輸入回車換行
str1 = '''
====================================
????歡迎XXX:
? 1. 添加學生
? 2. 查看學生
? 3. 修改學生信息
? 4. 刪除學生
? 5. 返回
======================================'''
input_str = input('請選擇(1-5):')
if input_str == '1':
name = input('姓名:')
age = input('年齡:')
tel = input('電話:')
elif input_str == '2':
find_name = input('請輸入要查看的學生的姓名:')
elif input_str == '3':
print('目前正在修改學生信息')
elif input_str == '4':
print('目前正在刪除學生信息')
else:
print('退出!')
練習:輸入一個年份,獲取指定的年份是否是潤年。是,拿到結果'閏年',否則拿到結果'不是閏年'
閏年的條件: 年份是否能被4,不能被100整除; 或者能被400整除
year = int(input('年份:'))
result = '閏年' if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) else '不是閏年'
print(result)
1.if的嵌套
在if結果中還可以再寫if結構
輸入一個數(shù),如果這個數(shù)是偶數(shù),打印'xx是偶數(shù)', 同時判斷它是否能被4整除,如果可以再打印'xx還是4的倍數(shù)';
如果不是偶數(shù)只打印'xx是奇數(shù)'
num = int(input('請輸入一個整數(shù):'))
if num % 2 == 0:
print('%d是偶數(shù)' % num)
# if中嵌套的if
if num % 4 == 0:
print('%d還是4的倍數(shù)' % num)
else:
print('是偶數(shù)但是不是4的倍數(shù)!')
print('===')
else:
print('%d是奇數(shù)' % num)
# else中也可以嵌套if
if num % 10 == 5:
print('這個奇數(shù)是5的倍數(shù)')
2. python中的三目運算符
"""
C/java/JS語言中有一個三目運算符: 表達式?值1:值2 -> 判斷表達式的值是否為True,為True整個表達式的結果是值1,否則是值2
python中的三目運算符: 值1 if 表達式 else 值2 -> 判斷表達式的值是否為True,為True整個表達式的結果是值1,否則是值2
當我們要根據某個條件是否成立,獲取不同的值的時候才使用三目運算
"""
num1, num2 = 110, 100
max = num1 if num1 > num2 else num2
print(max)
練習:輸入一個年份,獲取指定的年份是否是潤年。是,拿到結果'閏年',否則拿到結果'不是閏年'
閏年的條件: 年份是否能被4,不能被100整除; 或者能被400整除
"""
1.為什么要使用循環(huán)
python中的循環(huán)結構有兩種: for循環(huán)和while循環(huán);
當實現(xiàn)某個功能的時候發(fā)現(xiàn)某個操作需要重復執(zhí)行,這個時候就考慮使用循環(huán)
"""
1+2+3+...+100
print(1+2+3+4+5+6+7+...+100)
統(tǒng)計1~10000能夠被13整除的數(shù)的個數(shù)
"""
2.for循環(huán)
a.語法
for 變量 in 序列:
循環(huán)體
b.說明
for - 關鍵字
變量 - 一個變量名,可以是已經賦值過的變量也可以是新的變量(一般是新的變量)
in - 固定寫法
序列 - 屬于序列的數(shù)據; python中的序列有:字符串、列表、字典、集合、元祖、range、迭代器、生成器
: - 固定寫法
循環(huán)體 - 需要重復執(zhí)行的代碼就放在循環(huán)體中;循環(huán)體需要和for保持一個縮進
c.執(zhí)行過程(重要!)
讓變量去序列中取值,一個一個的取,取完為止。每取一個值,執(zhí)行一次一次循環(huán)體。
(序列中元素的個數(shù)決定了循環(huán)體執(zhí)行的次數(shù))
"""
"""
第一次循環(huán): char = 'a' print('===') print(char)
第二次循環(huán): char = 'b' print('===') print(char)
第三次循環(huán): char = 'c' print('===') print(char)
"""
for char in 'abc':
print('===')
練習:給一個字符串'hosee 23jh!hs89_=sssAsK', 統(tǒng)計這個字符串中數(shù)字字符的個數(shù)
str1 = 'hosee 23jh!hs89_=sssAsK'
count = 0 # 用來保存數(shù)字字符的個數(shù),默認是0個
for char in str1:
if '0' <= char <= '9':
count += 1
print('%s中有%d個數(shù)字字符' % (str1, count))
"""
3.range函數(shù)
range(N) -> 產生數(shù)字序列 0 ~ N-1 (N必須是整數(shù), N大于0)
range(M, N) -> 產生數(shù)字序列 M ~ N-1 (M,N必須是整數(shù), N > M)
range(M, N, step) -> 從M開始,每次值加step產生下一個數(shù)字,直到N前一個為止。 (M,N必須是整數(shù), step>0,N>M;step<0,N<M)
"""
for num in range(1, 100, 2):
print('num:', num)
練習:計算1+2+3...+100
"""
sum1 = 0
num = 1 sum1 += num, sum1 = sum1+num = 0+1
num = 2 sum1 += num, sum1 = sum1+num = 1+2
num = 3 sum1 += num, sum1 = sum1+num = 1+2+3
...
num = 100 sum1 += num, sum1 = sum1+num = 1+2+3+4+..+100
sum1 = 0
for num in range(1, 101):
sum1 += num
print(sum1)
練習: 求100以內所有能被13或者7整除的數(shù)的和
sum1 = 0
for num in range(100):
if num % 13 == 0 or num % 7 == 0:
sum1 += num
print(sum1)
"""
4.通過遍歷字符串字符下標遍歷字符串
"""
str1 = 'hello word!'
index是字符對應的下標, 從前往后取
for index in range(len(str1)):
print(str1[index], end='')
print('===========')
index是字符對應的下標, 從后往前取
for index in range(-1, -len(str1)-1, -1):
print(str1[index], end='')
"""
1.為什么要使用循環(huán)
python中的循環(huán)結構有兩種: for循環(huán)和while循環(huán);
當實現(xiàn)某個功能的時候發(fā)現(xiàn)某個操作需要重復執(zhí)行,這個時候就考慮使用循環(huán)
"""
1+2+3+...+100
print(1+2+3+4+5+6+7+...+100)
統(tǒng)計1~10000能夠被13整除的數(shù)的個數(shù)
"""
2.for循環(huán)
a.語法
for 變量 in 序列:
循環(huán)體
b.說明
for - 關鍵字
變量 - 一個變量名,可以是已經賦值過的變量也可以是新的變量(一般是新的變量)
in - 固定寫法
序列 - 屬于序列的數(shù)據; python中的序列有:字符串、列表、字典、集合、元祖、range、迭代器、生成器
: - 固定寫法
循環(huán)體 - 需要重復執(zhí)行的代碼就放在循環(huán)體中;循環(huán)體需要和for保持一個縮進
c.執(zhí)行過程(重要!)
讓變量去序列中取值,一個一個的取,取完為止。每取一個值,執(zhí)行一次一次循環(huán)體。
(序列中元素的個數(shù)決定了循環(huán)體執(zhí)行的次數(shù))
"""
"""
第一次循環(huán): char = 'a' print('===') print(char)
第二次循環(huán): char = 'b' print('===') print(char)
第三次循環(huán): char = 'c' print('===') print(char)
"""
for char in 'abc':
print('===')
print(char)
練習:給一個字符串'hosee 23jh!hs89_=sssAsK', 統(tǒng)計這個字符串中數(shù)字字符的個數(shù)
str1 = 'hosee 23jh!hs89_=sssAsK'
count = 0 # 用來保存數(shù)字字符的個數(shù),默認是0個
for char in str1:
if '0' <= char <= '9':
count += 1
print('%s中有%d個數(shù)字字符' % (str1, count))
"""
3.range函數(shù)
range(N) -> 產生數(shù)字序列 0 ~ N-1 (N必須是整數(shù), N大于0)
range(M, N) -> 產生數(shù)字序列 M ~ N-1 (M,N必須是整數(shù), N > M)
range(M, N, step) -> 從M開始,每次值加step產生下一個數(shù)字,直到N前一個為止。 (M,N必須是整數(shù), step>0,N>M;step<0,N<M)
"""
for num in range(1, 100, 2):
print('num:', num)
練習:計算1+2+3...+100
"""
sum1 = 0
num = 1 sum1 += num, sum1 = sum1+num = 0+1
num = 2 sum1 += num, sum1 = sum1+num = 1+2
num = 3 sum1 += num, sum1 = sum1+num = 1+2+3
...
num = 100 sum1 += num, sum1 = sum1+num = 1+2+3+4+..+100
"""
sum1 = 0
for num in range(1, 101):
sum1 += num
print(sum1)
練習: 求100以內所有能被13或者7整除的數(shù)的和
sum1 = 0
for num in range(100):
if num % 13 == 0 or num % 7 == 0:
sum1 += num
print(sum1)
"""
4.通過遍歷字符串字符下標遍歷字符串
"""
str1 = 'hello word!'
index是字符對應的下標, 從前往后取
for index in range(len(str1)):
print(str1[index], end='')
print('===========')
index是字符對應的下標, 從后往前取
for index in range(-1, -len(str1)-1, -1):
print(str1[index], end='')
"""
1.continue
continue是python關鍵字,只能用在循環(huán)體中!
功能:執(zhí)行循環(huán)體執(zhí)行到continue的時候,結束當次循環(huán),直接進入下次循環(huán)的判斷。
(for循環(huán)就是讓變量去取下一個值; while循環(huán)就是直接去判斷while后邊的條件是否為True)
"""
for x in range(3):
print('===')
print('***')
if x == 2:
continue
print('123')
x = 0
while x < 100:
x += 1
if x % 3 == 0:
continue
print(x)
"""
2.break
break是python關鍵字,只能用在循環(huán)體中!
功能: 執(zhí)行循環(huán)體的時候,遇到break循環(huán)直接結束.直接執(zhí)行循環(huán)后面的其他語句
"""
找到大于111的數(shù)字當中第一個能夠能夠被17整除的數(shù)
print('===============')
num = 111
while True:
if num % 17 == 0:
print(num)
break
num += 1
for x in 'abc':
print(x)
break
print(x)
"""
3.else
for 變量 in 序列:
循環(huán)體
else:
代碼段
while 條件語句:
循環(huán)體
else:
代碼段
執(zhí)行過程: 循環(huán)執(zhí)行過程不變, else后邊代碼段,如果循環(huán)是自然死亡就會執(zhí)行;如果是因為遇到break而結束的,就不會執(zhí)行
"""
for x in range(5):
print(x)
if x == 3:
break
else:
print('for循環(huán)自然死亡') # 循環(huán)遇到break不會執(zhí)行
print('===========') # 不管循環(huán)怎么結束都會執(zhí)行
index = 0
while index < 5:
if index == 3:
break
index += 1
else:
print('while自然死亡')