第2章 语法基础
1.判断以下标识符命名是否符合要求( )。
A)@abc
B)a_b_c
C)姓名
D)student age
E)a# b
F)a_1
G)1_a
H)for

BF

2.阅读以下程序代码,写出程序执行结果。
A)

a = 5 > 4 and 2
print(a)

2

B)

b = 6 < 5 or 3
print(b)

3

C)

c = 0x11
print("%o" % c)

21

D)

a = 3 and 4
b = a ** 2
print(b)

16

E)

a = 13
b = a/5 + a//5 + a % 5
print(b)

7.6

3.编写程序,实现图2-6所示效果(说明:打印内容位于正中间,整体宽度为30个字符,高度为 5 行)。

wget python 清华 清华大学python作业_wget python 清华

#法一
content=input("请输入你需要打印的内容:")
width=len(content)+5*2#计算中间部分长度
print("="*(width+2))#打印第一行
print("|"," "*width,"|",sep="")#打印第二行
print("|",content.center(width),"|",sep="")#打印中间内容
print("|"," "*width,"|",sep="")#打印第四行
print("="*(width+2))
#法二
text=input("请输入你需要打印的内容:")
print("="*30)
print("|",' '*26,"|")
print("|",text.center(26,' '),"|")
print("|",' '*26,"|")
print("="*30)

3.2 选择结构

wget python 清华 清华大学python作业_开发语言_02


代码如下:

num=int(input("请输入年份:"))
if num % 4==0 and num % 100 !=0 or num % 400 == 0:
    print(num," 是闰年")
else:
    print(num," 是平年")

3.3 循环结构

wget python 清华 清华大学python作业_字符串_03


代码如下:

row=int(input("请输入一个整数:"))
for i in range(1,row+1):
    j=1
    print("  "*(row-i),end=" ")
    k=i-1
    while j<=i:
        print(j,end=" ")
        j=j+1
    while k>0:
        print(k,end=" ")
        k=k-1
    print()

wget python 清华 清华大学python作业_开发语言_04


代码如下:

for i in range(1,10):
    for j in range(1,i+1):
        print(j,"*",i,"=",j*i,end=" ")
    print()

3.4 循环控制语句

wget python 清华 清华大学python作业_字符串_05


代码如下:

sum=0
for i in range(10):
    if i%4==0:
        break
    sum=sum+i
print(sum)
sum=0
for i in range(10):
    if i//4==2:
        continue
    sum=sum+i
print(sum)
sum=0
i=0
while i<10:
    if i % 4==0:
       continue
    sum=sum+i
    i=i+1
print(sum)
i=1
while i<5:
    i=i+1
else:
    i=i*2
print(i)

3.5 综合案例

wget python 清华 清华大学python作业_数据分析_06


代码如下:

rows=int(input("请输入菱形的行号:"))
half=rows//2
if rows%2==0:
    up=half
else:
    up=half+1
for i in range(1,up+1):
    print(" "*(up-i),"*"*(2*i-1))
for i in range(half,0,-1):
    print(" "*(up-i),"*"*(2*i-1))

4.1列表

wget python 清华 清华大学python作业_字符串_07


1.代码如下:

#法一
a_list=[4,10,12,9,6,3]
b_list=[12,8,5,6,7,6,10]
ab_list=a_list+b_list
c_list=[]
for ab in ab_list:
    if ab not in c_list:
        c_list.append(ab)
print(c_list)

c_list.sort(reverse=True)
print(c_list)
#法二
a_list=[4,10,12,9,6,3]
b_list=[12,8,5,6,7,6,10]
c_list=list(set(a_list+b_list))
print(c_list)
c_list.sort(reverse=True)
print(c_list)

2.代码如下:

#法一
a_list=[4,6,8,6,4,2,6,6,5,7,4,2,1,7,6,7,4]
b_list=[]
for a in a_list:
    if a not in b_list:
        b_list.append(a)
print(b_list)
for b in b_list:
    print("元素",b,"在列表中出现了",a_list.count(b),"次")
#法二
a_list=[4,6,8,6,4,2,6,6,5,7,4,2,1,7,6,7,4]
b_list=list(set(a_list))
for b in b_list:
    print("元素",b,"在列表中出现了",a_list.count(b),"次")

4.3字符串

wget python 清华 清华大学python作业_wget python 清华_08


1.代码如下:

#删除重复元素、列表转字符串
a_list = [4, 8, 7, 8, 6, 3]
b_list=[]
for i in a_list:
    if i not in b_list:
        b_list.append(i)
print(b_list)

#先将列表里的元素转换成字符串
b_str=[]
for b in b_list:
    b_str.append(str(b))
#再用join将字符串连接
print(''.join(b_str))

2.代码如下

#(统计字符出现的频数)
str1 =input("请输入一个字符串:")
str2=[]
for s in str1:
    if s not in str2:
        str2.append(s)
str2=''.join(str2)
ls=[]
for s in str2:
    if s in str1:
        ls.append((s,str1.count(s)))
ls.sort()
num=[]
for i in ls:
    num.append(i[1])
    if i[1]==max(num):
        print(i[0])

wget python 清华 清华大学python作业_python_09


1.代码如下:

str1 =input("请输入字符串")
d={}
for s in str1:
    d[s]=d.get(s,0)+1
ls=list(d.items())
ls.sort(key=lambda x:x[1],reverse=True)
for i in ls:
    print(i[0],"字符出现次数为:",i[1])

wget python 清华 清华大学python作业_开发语言_10


1.代码如下:

a_list=[4,6,8,9]
c_list=[]
for i in a_list:
    for j in a_list:
        for k in a_list:
            if i!=j and j!=k and k!=i:
                c=k*100+j*10+i
                c_list.append(c)
print(c_list)

2.代码如下:

datas={'Aaa':80,'Ddd':65,'Mmm':58,'Bbb':75,'Eee':90,'Www':86,'Ccc':88,'Fff':95,'Yyy':78}
data=sorted(datas.items(),key=lambda item:item[1],reverse=True)
print(data)
great=[]
s=sum(datas.values())/len(datas)
for i in datas.values():
    if i >= 90:
        great.append(i)
s_r=len(great)/len(datas)
print("班级平均分以及优秀率分别为:{0:.2f},{1:.2f}".format(s,s_r))

5.1 函数的定义与调用

wget python 清华 清华大学python作业_python_11


1.代码如下

def lingxing(rows):
    half=rows//2
    if rows%2==0:
        up=half
    else:
        up=half+1
    for i in range(1,up+1):
        print(" "*(up-i),"*"*(2*i-1))
    for i in range(half,0,-1):
        print(" "*(up-i),"*"*(2*i-1))
num=int(input("请输入菱形的行数:"))
lingxing(num)

2.代码如下

def Count(a,b):
    if a > b:
        a,b = b,a
    s = 0
    for i in range(a,b+1):
        s += i
    return s
a = eval(input("请输入一个整数"))
b = eval(input("请输入一个整数"))
print(Count(a,b))

5.2 参数类型与参数传递

wget python 清华 清华大学python作业_python_12


1.代码如下:

def cacluate(*num):   # 定义带任意参数的函数
    if len(num)==1:
        z_s=num[0]*num[0]
        z_c=num[0]*4
        print("正方形的面积为:",z_s)
        print("正方形的周长为:",z_c)
    
    if len(num)==2:
        c_s=num[0]*num[1]
        c_c=(num[0]+num[1])*2
        print("长方形的面积为:",c_s)
        print("长方形的周长为:",c_c)

cacluate(1)
print()
cacluate(1,5)

5.3 变量作用域与递归

wget python 清华 清华大学python作业_数据分析_13


1.代码如下:

s=0
number=[]
def math(num):
    global s
    if num==1:
        return 1
    elif num%2==0:
        n=num/2
        number.append(n)
        s=s+1
        math(n)
        return n
        
    elif num%2!=0:
        n=num*3+1
        number.append(n)
        s=s+1
        math(n) 
        return n
num=eval(input("请输入一个自然数:"))
math(num)
print("输出",number)
print("步长为",s)

5.5本章小结

wget python 清华 清华大学python作业_wget python 清华_14


1.代码如下:

class Solution:
    def jumpFloor(self, number):
        a = [1,2]
        if number > 2:
            for i in range(2,number):
                a.append(a[i-2]+a[i-1])
        return a[number-1]
S=Solution()
print(S.jumpFloor(9))

2.代码如下:

def shu(num):
    odd=[]
    double=[]
    for i in num:
        if i%2!=0:
            odd.append(i)
        else:
            double.append(i)
    c=odd+double
    print(c)
num=[9,6,7,3,1,8,4,6]
shu(num)

7.6本章小结

wget python 清华 清华大学python作业_字符串_15


1.代码如下:

import time
for i in range(1,100):
    time.sleep(0.2)
    print("\r当前下载进度为:",i,"%",end="")
print("\r下载完成!")

2.代码如下:

import string
import random
x = string.ascii_letters
y = [random.choice(x.lower()) for i in range(1000)]
z = ''.join(y)
d = dict()    #创建空字典
for ch in z:    #统计每个字符在字符串中出现的次数
    d[ch] = d.get(ch, 0) + 1
#print(d)    #每个字符出现的次数
ls=list(d.items())
ls.sort(key=lambda x:x[1],reverse=True)
print(ls)

8.1 文本文件的读写

wget python 清华 清华大学python作业_python_16

file = open('mult.txt','w')
for i in range(1,10):
    for j in range(1,i+1):
        s ='{}*{}={:2} '.format(j,i,i*j)
        file.write(s)
    file.write('\n')
file.close()

8.2 文件与文件夹的常见操作

wget python 清华 清华大学python作业_wget python 清华_17

8.3Excel文件的读写

wget python 清华 清华大学python作业_字符串_18

8.4本章小结

wget python 清华 清华大学python作业_字符串_19